check for valid location of zero length dwarf block forms?

Jan Kratochvil jan.kratochvil@redhat.com
Mon Nov 23 19:57:00 GMT 2009


On Sun, 22 Nov 2009 21:21:48 +0100, Jack Howarth wrote:
>    Is this being done in the following code from dwarf2out.c?

Forwarded it to Dodji:

On Mon, 23 Nov 2009 10:57:55 +0100, Dodji Seketeli wrote:
# My understanding is that the code of resolve_addr makes sure that a
# DW_OP_addr or a DW_AT_const_value does _NOT_ point to a "junk" address.
# I.E. the function makes sure that if the address does not point to either a
# const string in .rodata or an address in the current CU (for SYMBOL_REFs),
# then:
# - the location list containing the DW_OP_addr is removed
#   or
# - the DW_AT_const_value is replaced by a DW_AT_location pointing to an
#   empty location expression.


> The problem we have on darwin is that, while Apple will likely fix dsymutils
> for Xcode 3.2 (Snow Leopard), it probably will remain broken for Tiger and
> Leopard's devtools. So it would be helpful to find some way to suppress this
> offending dwarf code on darwin in the cases were the variable has a valid location
> but is zero length or doesn't have a location.

I think you can put some workaround
to dwarf2out.c (output_die <dw_val_class_loc>) but I did not try it.


Regards,
Jan



More information about the Gdb mailing list