From mboxrd@z Thu Jan 1 00:00:00 1970 From: Keith Seitz To: Vishal Kulshrestha Cc: gdb@sources.redhat.com Subject: Re: gdb usage help! Date: Wed, 11 Apr 2001 06:52:00 -0000 Message-id: References: X-SW-Source: 2001-04/msg00085.html 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 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 to continue, or q to quit--- and so on. Keith