[Dwarf-Discuss] Does gcc optimization impacts retriving Dwarf information?
M. Mohan Kumar
mohan@in.ibm.com
Thu May 28 10:35:23 GMT 2009
Hi Eager,
Thank you very much for the response.
> The optimizations invoked by -O2 are removing variables like
> 'cpu' from the generated code. There is no missing DWARF info
> which should describe where to find their values, since they no
> longer exist.
>
> To confirm this, look at the generated code and see if the local
> variables like 'cpu' are allocated either on the stack or in a
> register. If this is the case, it's possible that your compiler
> is generating incorrect DWARF. But the more likely situation is
> simply that the local variables have been either evaluated or
> incorporated into expressions and no longer exist.
Let me check the code and verify it.
>
> > 2. Does it require handling it differently in our implementation?
>
> Well, yes and no. You can compile without optimizations, so the
> local variables are not removed. That's generally not desirable.
> You can make changes to the source so that the local variables are
> not eliminated, such as making them static or volatile. Again,
> not desirable.
Obviously we can't ask for compiling the kernel without optimization. Also
we can't make changes to the function just to retain the local variables
info for later debugging :)
>
> DIEs for variables which do not have DW_AT_location attributes
> do not have physical locations. Your crash dump utility should
> not attempt to find the locations or print the values for these
> variables.
Makes sense.
So we assume that our implementation is correct and works fine.
Regards,
M. Mohan Kumar.
More information about the Dwarf-discuss
mailing list