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

Reply via email to