This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: gdb usage help!
- To: Vishal Kulshrestha <vishal at sasken dot com>
- Subject: Re: gdb usage help!
- From: Keith Seitz <keiths at cygnus dot com>
- Date: Wed, 11 Apr 2001 06:52:34 -0700 (PDT)
- cc: gdb at sources dot redhat dot com
On Wed, 11 Apr 2001, Vishal Kulshrestha wrote:
> Is there a way of letting gdb print all the source code lines as
> it executes!
Well, yes and no. You could step/next forever until the program exits or
you get a signal/exception. You would need to be careful about stepping
into shared libraries and system calls, etc, but it could be done with a
simple (overly simple?) gdb script:
$ cat test.c
#include <stdio.h>
int
main (int argc, char *argv[])
{
int i;
for (i = 0; i < 10; i++)
{
printf ("i = %d\n", i);
}
exit (0);
}
$ gdb -nw -q test
(gdb) b main
Breakpoint 1 at 0x8048492: file test.c, line 8.
(gdb) r
Starting program: /home/keiths/test
Breakpoint 1, main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
(gdb) while 1
>next
>f
>end
10 printf ("i = %d\n", i);
#0 main (argc=1, argv=0xbffffab4) at test.c:10
10 printf ("i = %d\n", i);
i = 0
8 for (i = 0; i < 10; i++)
#0 main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
10 printf ("i = %d\n", i);
#0 main (argc=1, argv=0xbffffab4) at test.c:10
10 printf ("i = %d\n", i);
i = 1
8 for (i = 0; i < 10; i++)
#0 main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
10 printf ("i = %d\n", i);
#0 main (argc=1, argv=0xbffffab4) at test.c:10
10 printf ("i = %d\n", i);
i = 2
8 for (i = 0; i < 10; i++)
#0 main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
10 printf ("i = %d\n", i);
#0 main (argc=1, argv=0xbffffab4) at test.c:10
10 printf ("i = %d\n", i);
i = 3
8 for (i = 0; i < 10; i++)
#0 main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
10 printf ("i = %d\n", i);
#0 main (argc=1, argv=0xbffffab4) at test.c:10
10 printf ("i = %d\n", i);
i = 4
8 for (i = 0; i < 10; i++)
#0 main (argc=1, argv=0xbffffab4) at test.c:8
8 for (i = 0; i < 10; i++)
10 printf ("i = %d\n", i);
---Type <return> to continue, or q <return> to quit---
and so on.
Keith