The step-Over (next) command seems repetitively displaying same statement execution

Jitendra Pawar jitendrap@ryussi.com
Tue Dec 22 12:03:00 GMT 2015


Hello,

While using gdb some time I saw that the step-over(next) command
repeats whatever display in last step.
This mostly observed while stepping over the system calls. For example-

Below is my sample code snippet-
------------------------------------------------------------------------
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    char *c;

    c = (char*) malloc (12);

    memcpy(c, "Hello World", 12);

    printf("%s\n", c);
}
------------------------------------------------------------------------


While debugging this code I found that the malloc statement execution
repeats as shown below-


------------------------------------------------------------------------
$ gdb -q a.out
Reading symbols from /home/jitendra/work/roughwork/a.out...done.
(gdb) br main
Breakpoint 1 at 0x40054c: file hello.c, line 9.
(gdb) run
Starting program: /home/itendrap/work/roughwork/a.out
warning: no loadable sections found in added symbol-file
system-supplied DSO at 0x7ffff7ffa000

Breakpoint 1, main () at t.c:9
9        c = (char*) malloc (12);
(gdb) n
9        c = (char*) malloc (12);
(gdb) n
11        memcpy(c, "Hello World", 12);
(gdb) n
13        printf("%s\n", c);
(gdb) n
Hello World
14    }
(gdb)
------------------------------------------------------------------------

Can anyone please explain whats going wrong here? Why the malloc
statement 'c = (char*) malloc (12);' gets repeated?

Thanks in advance,
- Jitendra Pawar



More information about the Gdb mailing list