Hi all,

I am encountering a problem with DWARF location lists. Consider the following assembly:

_Ltext:
main:
_LVL0:
       ;# basic block 0
_LVL1:

This generates a DWARF location list entry whose begin and end addresses are identical, due to the empty basic block. Not a great problem on the face of it, but I'm using gcc in an embedded system in which the `main' function is placed at address 0. Thus, the location list entry gets an address range of [0, 0) which denotes the supposed end of the location list. This corrupts the location list, making it impossible to debug optimised code.

Would it be difficult to detect empty location list so that they are never emitted? Empty locations lists are meaningless to the debugger, so deleting them wouldn't cause problems, and if they weren't present, the above situation could never occur.

thanks,

dan.

============================================================================
Dan Towner
picoChip Designs Ltd., Riverside Buildings, 108, Walcot Street, BATH,
BA1 5BG
[EMAIL PROTECTED]
07786 702589

Reply via email to