[DWARF] Tracking uninitialized variables

Michael Eager eager@eagerm.com
Mon Jul 20 18:41:00 GMT 2015


On 07/20/2015 09:55 AM, Nikolai Bozhenov wrote:
>
> On 07/17/2015 08:31 PM, Michael Eager wrote:

>> A related issue is where the breakpoint is taken.  GCC sets breakpoints
>> at the first instruction generated for a statement, which in this case,
>> appears to be before any of the arguments to bar are evaluated.  A
>> possibly better location would be after arguments are evaluated, before
>> the call is executed.

> In this case GDB set the breakpoint at the instruction at 0x0d where
> evaluation of the first argument for the call is performed. I'm not
> sure that there is a less confusing way to choose an address to set a
> breakpoint. For example I don't think it is a good idea to ignore
> evaluation of function arguments and set a breakpoint right at the
> call instruction. But even if there is a better way, such new feature
> is likely to be implemented in GDB rather than in GCC.

Debugging optimized programs is difficult, and deciding the best
location to set a breakpoint is a matter for some thought.  (See
Caroline Tice's dissertation.)  If none of the arguments is evaluated
until after the first instruction of a function call, then you cannot
display the argument values if that is your breakpoint.

No matter what location you feel is the best for a breakpoint, it is
the compiler which generates the line number table and indicates where
a breakpoint should be placed, not the debugger.  Don't expect anything
in GDB which will do something when GCC provides incomplete or
inaccurate information.


-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



More information about the Gcc mailing list