<div dir="ltr">Hi Jim,<div><br></div><div>I tried to work on this, but everything there actually seemed correct. It now seems to me like those functions are simply missing from .apple_names (compiled with latest Clang trunk), so this might not be an LLDB bug after all.</div><div><br></div><div>Keno</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Sep 4, 2015 at 3:20 PM, Jim Ingham <span dir="ltr"><<a href="mailto:jingham@apple.com" target="_blank">jingham@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Certainly a bug.  This bit:<br>
<br>
        if (inlined_die)<br>
        {<br>
            Block &function_block = sc.function->GetBlock (true);<br>
            sc.block = function_block.FindBlockByID (inlined_die.GetID());<br>
            if (sc.block == NULL)<br>
                sc.block = function_block.FindBlockByID (inlined_die.GetOffset());<br>
            if (sc.block == NULL || sc.block->GetStartAddress (addr) == false)<br>
                addr.Clear();<br>
        }<br>
<br>
from SymbolFileDwarf::ResolveFunction is most likely responsible.  I don't remember offhand how the blocks deal with the fact that this one die actually represents multiple blocks, but it's going to be something related to that.<br>
<br>
If you want to have a look, that would be great, otherwise file a bug and we can take a look when we get some free time.<br>
<br>
Jim<br>
<div><div class="h5"><br>
> On Sep 4, 2015, at 12:05 PM, Keno Fischer via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br>
><br>
> 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.<br>
><br>
> 0x0000f6c8:                   DW_TAG_inlined_subroutine [42] *<br>
>                                 DW_AT_abstract_origin [DW_FORM_ref4]    (cu + 0x22e7 => {0x0000d394} "jl_apply")<br>
>                                 DW_AT_low_pc [DW_FORM_addr]     (0x000000000000f768)<br>
>                                 DW_AT_high_pc [DW_FORM_addr]    (0x000000000000f776)<br>
>                                 DW_AT_call_file [DW_FORM_data1] ("/Users/kfischer/Projects/julia-testpatch/src/gf.c")<br>
>                                 DW_AT_call_line [DW_FORM_data1] (34)<br>
><br>
> will get a  breakpoint while<br>
><br>
> 0x0000f6ee:         DW_TAG_inlined_subroutine [53] *<br>
>                       DW_AT_abstract_origin [DW_FORM_ref4]      (cu + 0x22e7 => {0x0000d394} "jl_apply")<br>
>                       DW_AT_ranges [DW_FORM_data4]      (0x0000b790<br>
>                          [0x000000000000f785 - 0x000000000000f788)<br>
>                          [0x000000000000f79c - 0x000000000000f7b8))<br>
>                       DW_AT_call_file [DW_FORM_data1]   ("/Users/kfischer/Projects/julia-testpatch/src/gf.c")<br>
>                       DW_AT_call_line [DW_FORM_data2]   (1668)<br>
><br>
> 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?<br>
><br>
> Thanks,<br>
> Keno<br>
</div></div>> _______________________________________________<br>
> lldb-dev mailing list<br>
> <a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev</a><br>
<br>
</blockquote></div><br></div>