Re: Complex DWARF expressions

Eli Zaretskii <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <[email protected]>
> Date: Mon, 22 Sep 2014 08:16:54 +0200
> From: Jan Kratochvil <[email protected]>
> Cc: Eli Zaretskii <[email protected]>, [email protected]
> 
> But $edx at the caller would be usually callee-clobbered so one would not be
> able to read the value.  This is why the caller's call instruction is described
> by:
> 
>  <8><1663ca>: Abbrev Number: 24 (DW_TAG_GNU_call_site)
>     <1663cb>   DW_AT_low_pc      : 0x814d44f
>     <1663cf>   DW_AT_abstract_origin: <0x15e7bc>
>  <9><1663d8>: Abbrev Number: 3 (DW_TAG_GNU_call_site_parameter)
>     <1663d9>   DW_AT_location    : 1 byte block: 52     (DW_OP_reg2 (edx))
>     <1663db>   DW_AT_GNU_call_site_value: 1 byte block: 30      (DW_OP_lit0)
> 
> So one finds matching DW_TAG_GNU_call_site and then one finds
> DW_TAG_GNU_call_site_parameter with matching DW_AT_location there.
> 
> These rules have to be applied recursively, as in many cases there is for
> example:
> 
>  <6><1669c2>: Abbrev Number: 3 (DW_TAG_GNU_call_site_parameter)
>     <1669c3>   DW_AT_location    : 1 byte block: 51     (DW_OP_reg1 (ecx))
>     <1669c5>   DW_AT_GNU_call_site_value: 7 byte block: f3 1 51 a ff ff 1a      (DW_OP_GNU_entry_value: (DW_OP_reg1 (ecx)); DW_OP_const2u: 65535; DW_OP_and)

Why can't GDB apply all this, and show a value for a given PC?  We
don't really expect anyone but a few DWARF specialists to understand
all that you said above (I, for example, didn't understand any of it),
right?
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.