ZequanWu wrote:

> > For example: 
> > https://github.com/llvm/llvm-project/blob/main/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp#L922-L927.
> >  When parsing function info, it validates low and hi address of the 
> > function: `GetMinRangeBase` returns the first range entry base and 
> > `GetMaxRangeEnd` returns the last range end. If low >= hi, it stops parsing 
> > this function.
> > This causes missing inline stack frames for us when debugging a core dump.
> 
> Gotcha, makes sense. Since you know how this fails, could you add a test to 
> make sure that scenario continues working?

Yeah, I updated the test 
`lldb/test/Shell/SymbolFile/DWARF/x86/debug_rnglists.s` so that two ranges in 
`.debug_rnglists` are out of order and `image lookup -v -s lookup_rnglists` is 
still able to produce sorted ranges for the inner block:
Without this change:
```
         Blocks: id = {0x00000030}, range = [0x00000000-0x00000004)
         Symbol: id = {0x00000003}, range = 
[0x0000000000000001-0x0000000000000004), name="lookup_rnglists"
```
With this change:
```
         Blocks: id = {0x00000030}, range = [0x00000000-0x00000004)
                 id = {0x00000046}, ranges = 
[0x00000001-0x00000002)[0x00000003-0x00000004)
         Symbol: id = {0x00000003}, range = 
[0x0000000000000001-0x0000000000000004), name="lookup_rnglists"
```




https://github.com/llvm/llvm-project/pull/91343
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to