You can also use SBCommandInterpreter::HandleCommand, which gives you a bit more control over what happens.
good luck with your thesis. pl On 9 May 2016 at 10:00, Stefan Kratochwil <kratoch...@teco.edu> wrote: > Hi Pavel, > > thanks for your quick reply. I am currently using a release build, so it may > take a moment until I can step through there. I'll report back as soon as > possible (my masters thesis somehow depends on that ;) ). > > I was just about to implement an addon for the API tonight, when I found > SBDebugger::HandleCommand("target symbols add ..."). Yeah, it's a little > weird way of using an API, and it's a one way command with stdout as reply > channel, but it works ^^ > > Cheers, > Stefan > > > > On 05/09/2016 10:22 AM, Pavel Labath wrote: >> >> Hi Stefan, >> >> what you are describing should work out of the box, so the fact that >> you are having to add the symbols manually is a bug. I haven't tried >> it with the apache binary specifically, but lldb can certainly find >> external debug symbols for libc (definitely on ubuntu 14.04, as that's >> what I use). We need to figure out what is different in your case. The >> most important function here is SymbolVendorELF::CreateInstance. Could >> you step through that function, and see why it fails to find the file? >> >> On 7 May 2016 at 19:45, Stefan Kratochwil via lldb-dev >> <lldb-dev@lists.llvm.org> wrote: >>> >>> Hi, >>> >>> I need to gather information about variables on the stack frames of a >>> given >>> program, lets say apache2 (httpd), using the C++ flavour of the lldb >>> scripting bridge. >>> >>> Now, if I attach to the corresponding process id, lldb does not find any >>> debug symbols, although I have installed the debug symbols package for >>> apache2 (apache2-dbg). >>> >>> If I use the lldb cli, I have to use >>> 'target symbols load /usr/lib/debug/usr/sbin/apache2' >>> (or any other path under /usr/lib/debug, depending on the stack frame / >>> module I am currently looking at) to load the corresponding debug >>> symbols. >>> >>> However, if I try the same with gdb, then it automagically uses the >>> binaries >>> under /usr/lib/debug (the non-stripped binaries from any *-dbg package >>> are >>> located here) for symbolification. >>> >>> >>> Now, there are two questions for me: >>> >>> 1.: Is there a way to let lldb automagically load debug symbols from >>> /usr/lib/debug, if there are any? >>> >>> 2.: If not, how can I do this manually using the C++ API? >>> The SBTarget class does not have suitable methods for this - the closest >>> thing is SBTarget#AddModule(), but this gives me a _new_ module, instead >>> of >>> associating a symbolfile with an existing one. The code path of >>> CommandObjectTarget.cpp#AddModuleSymbols() seems not to be reflected in >>> the >>> scripting bridge, or at least I haven't found it yet. >> >> >> You can use SBDebugger::HandleCommand to execute any command which >> does have an API equivalent. It's not ideal, but it works. :) >> >> cheers, >> pl >> > _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev