[PATCH] D69847: DWARFDebugLoc(v4): Add an incremental parsing function
Sourabh Singh Tomar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 20 03:27:38 PST 2019
SouraVX added a comment.
In D69847#1753190 <https://reviews.llvm.org/D69847#1753190>, @labath wrote:
> I'm sorry, but I'm confused. Are you saying that the `.debug_loc.dwo` (i.e. non-standardized dwarf4 fission) location lists should be terminated with a classical `.debug_loc` double-zero entry ? That doesn't seem right -- the .debug_loc.dwo lists are in reality very different from `.debug_loc` (they use DW_LLE_*** constants and everything), and are really more similar to `.debug_loclists(.dwo)` than .debug_loc (though there are some subtle differences). It also doesn't seem to be what gcc is doing now -- this is a typical location list I get from gcc-9 -gsplit-dwarf (comments added by me):
Thanks for sharing, this I'm also sceptical here, as to what approach we should follow. You're comments seems reasonable here, But If you just try dumping this{GCC, compiled binary} -- again using llvm-dwarfdump you'll notice lots of `DW_LLE_end_of_list`. I'm not pointing you're wrong -- it's just the dump that the end user will see -- will not make sense{atleast confuses me} to him.
> .section .debug_loc.dwo,"e", at progbits
> .Ldebug_loc0:
> .LVUS0: # gcc "view" stuff -- ignore that
> .uleb128 .LVU2
> .uleb128 0
> .LLST0: # DW_AT_location points here
> .byte 0x3 # DW_LLE_startx_length
> .uleb128 0x1 # index
> .long .LFE0-.LVL0 # length
> .value 0x5 # expression length
> .byte 0x75
> .sleb128 0
> .byte 0x31
> .byte 0x24
> .byte 0x9f
> .byte 0 # DW_LLE_end_of_list
> .LVUS1: # next "view" starts here
>
>
> In practice, changing the `.byte 0` to two word-sized zeroes probably won't change anything, as the first byte of that will terminate the location list anyway. However, I don't think that's the right thing to do, and I think llvm-dwarfdump is right to display a bunch of end_of_list entries for something like that.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D69847/new/
https://reviews.llvm.org/D69847
More information about the llvm-commits
mailing list