Bug 12932

Summary: Incorrent code line number on breakpoint set by function name
Product: gdb Reporter: Ricardo Catalinas Jiménez <jimenezrick>
Component: breakpointsAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED INVALID    
Severity: normal CC: jan, jimenezrick
Priority: P2    
Version: HEAD   
Target Milestone: ---   
Host: Target:
Build: Last reconfirmed:
Attachments: Test case

Description Ricardo Catalinas Jiménez 2011-06-24 23:54:53 UTC
Created attachment 5820 [details]
Test case

*Tested on GDB 7.3.50.20110624 x86_64*

In the next code, add a breakpoint in the function `f' with
the command `break f'. The breakpoint is placed after the
last brace of `for (;;)' which is wrong. It makes bypass the
first iteration of the loop. When the breakpoint is hit then i=1:

=================================================
void f(char *s, int i)
{
        for (;;) {
                if (s[i++] == '\n')
                        break;
        } <--- breakpoint set here with `break f'
               with i=1
}

int main(int argc, char *argv[])
{
        char buf[] = "0123456789\n";

        f(buf, 0);

        return 0;
}
=================================================
Comment 1 Jan Kratochvil 2011-07-29 21:09:27 UTC
Filed as:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49906