[lldb-dev] Fwd: inability to set breakpoints in lldb

jingham at apple.com jingham at apple.com
Wed Sep 17 14:39:55 PDT 2014


Are any of these bugs fixed by setting:

settings set target.inline-breakpoint-strategy always

in your .lldbinit file?

Jim

> On Sep 17, 2014, at 10:34 AM, Doug Snyder <dsnyder at blueshiftinc.com> wrote:
> 
> i have been investigating several lldb bugs that seem to be related.  
> 
> bug 19974 describes lldb's inability to set a breakpoint in an included file and bug 20297 describes lldb's inability to set a breakpoint when using ccache.  i have also found a similar case where lldb is unable to set a breakpoint when a separate preprocess step has been used before compiling.
> 
> note: ccache uses a preprocess step to determine which source files need to be rebuilt so using ccache could be considered the same as using a separate preprocess step.
> 
> all three cases are similar in that the c/c++ preprocessor is involved and alters the way symbols are added to the object files.
> 
> the following attached files are write-ups of some of my findings for the different cases
>     ccache - "lldb and ccache.rtf"
>     preprocessed files - "lldb and preprocessed files.rtf"
>     include files - "lldb and include files.rtf"
> 
> all three cases generate the inability to set breakpoints
> 
> on the Mac, all three cases create object files with "SOL" symbols for preprocessed or included source files.
> 
> the following attached file describes the object files created for the preprocessed test case on the Mac:
>     "preprocessed object files.rtf"
> 
> on ubuntu, it is not as obvious to spot differences in the object files when examining object files that that lldb is unable to set breakpoints.
>  
> lldb is unable to set breakpoints on both OSX and ubuntu for all three cases.   gdb is able to set breakpoints on both OSX and ubuntu for all three cases.
> 
> using XCode, i have tried a couple different ways of stepping through lldb to see why it is having trouble setting breakpoints.  
> 
> From top-down, i have traced setting breakpoints in Breakpoint.cpp down thru BreakpointResolver.cpp.  The intended source file does not seem to be in the list of compute units, but i don't know why.
> 
> From bottom-up, i have tried to follow how ObjectFileMachO.cpp parses symbols, but i'm not sure that this is the correct place to look.  Also, since this is both a MachO problem and an Elf problem, the problem isn't likely to be here anyway.
> 
> Does anyone familiar with lldb's architecture have any ideas where in the code i should be looking or have a plan-of-attack to suggest?
> 
> thanks,
> doug
> 
> 
> 
> 
> <lldb and ccache.rtf><lldb and preprocessed files.rtf><preprocessed object files.rtf><lldb and include files.rtf>_______________________________________________
> lldb-dev mailing list
> lldb-dev at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev




More information about the lldb-dev mailing list