[lldb-dev] Breakpoints on inlined functions described by DW_AT_ranges
Keno Fischer via lldb-dev
lldb-dev at lists.llvm.org
Fri Sep 4 12:05:36 PDT 2015
I'm trying to set a breakpoint (using `b jl_apply`) on a function
(jl_apply) that is inlined in a number of places. This generally works
fine, but I have noticed that in certain cases LLDB fails to set a
breakpoint even though when I step through manually, it does know which
function the code belongs to. Investigating further, I have found that the
difference comes from whether the inlined subroutine is described via
DW_AT_low_pc or via DW_AT_ranges, so e.g.
0x0000f6c8: DW_TAG_inlined_subroutine [42] *
DW_AT_abstract_origin [DW_FORM_ref4] (cu
+ 0x22e7 => {0x0000d394} "jl_apply")
DW_AT_low_pc [DW_FORM_addr]
(0x000000000000f768)
DW_AT_high_pc [DW_FORM_addr]
(0x000000000000f776)
DW_AT_call_file [DW_FORM_data1]
("/Users/kfischer/Projects/julia-testpatch/src/gf.c")
DW_AT_call_line [DW_FORM_data1] (34)
will get a breakpoint while
0x0000f6ee: DW_TAG_inlined_subroutine [53] *
DW_AT_abstract_origin [DW_FORM_ref4] (cu +
0x22e7 => {0x0000d394} "jl_apply")
DW_AT_ranges [DW_FORM_data4] (0x0000b790
[0x000000000000f785 - 0x000000000000f788)
[0x000000000000f79c - 0x000000000000f7b8))
DW_AT_call_file [DW_FORM_data1]
("/Users/kfischer/Projects/julia-testpatch/src/gf.c")
DW_AT_call_line [DW_FORM_data2] (1668)
will not. Is this the intended behavior or a bug? If it's a bug, any ideas
where to look to try to fix it?
Thanks,
Keno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150904/373554fb/attachment.html>
More information about the lldb-dev
mailing list