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

Jitendra Pawar <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <CAO9sCwQiysreL3EK58yFV8e98w-AJL=43L1fBw19+EbWXhfJ+A@mail.gmail.com>
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
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.