Hmm... neither approach really works. 1. I created platform from lldb prompt, but when I create target from core file I see exactly the same wrong stacks. It seems that platform is ignored during core load in my case.2. chroot requires the whole set of binaries there in the new root. I simply cannot copy everything from the server. Even if I do, lldb will use copied binaries which is not a good idea... root@eugenebi-L2:~# chroot /home/eugene/tmpchroot: failed to run command ‘/bin/bash’: No such file or directory 3. I tried SBDebugger::SetCurrentPlatformSDKRoot() but it does not have any visible effect on load core, not sure what it is supposed to do :) Eugene > Subject: Re: [lldb-dev] How to load core on a different machine? > From: gclay...@apple.com > Date: Tue, 5 Jan 2016 15:04:36 -0800 > CC: lldb-dev@lists.llvm.org > To: eugen...@hotmail.com > > Try this: > > % lldb > (lldb) platform select --sysroot /path/to/remote/shared/libraries remote-linux > (lldb) <load core> > > If this works, there are SBPlatform class calls in the API you can use the > select the platform as done above if you need to not do this from the command > line. > > The other option is to chroot into /path/to/remote/shared/libraries and you > will need to copy your core file into /path/to/remote/shared/libraries, then > just run LLDB normally and it should work. > > Greg Clayton > > > On Jan 5, 2016, at 12:53 PM, Eugene Birukov via lldb-dev > > <lldb-dev@lists.llvm.org> wrote: > > > > Hi, > > > > I am using LLDB-3.7 on Ubuntu Linux. > > > > I have a core dump file and all shared libraries from my server but I want > > to investigate them on a dev box. But I fail to correctly load it in LLDB - > > it shows wrong stacks. I.e. I am looking for something equivalent to GDB > > commands "set solib-absolute-prefix" and "set solib-search-path". > > > > I tried to play with "target modules search-paths insert", but I cannot use > > it if there is no target and I cannot load core after I have a target - not > > sure what this command is intended to do... > > > > Now, what I really need to do - it is load core in my custom debugger that > > uses C++ API. Here I made some progress: > > • Create target with NULL file name > > • Load core using SBTarget::LoadCore() > > • Manually load all executables - the initial a.out and all the shared > > libraries using SBTarget::AddModule() and SBTarget::SetModuleLoadAddress() > > This kind of works, but there are two problems: > > • How would I find the list of modules and addresses to load from the > > core file? Currently I did it by loading core in the debugger on the > > server, but this is not acceptable for production run... > > • LLDB correctly prints stacks and resolves symbols, but I cannot > > disassembly any code - the ReadMemory retuns all zeroes from code addresses. > > > > Any help would be greatly appreciated. > > > > Thanks, > > Eugene > > _______________________________________________ > > lldb-dev mailing list > > lldb-dev@lists.llvm.org > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev >
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev