$gdb -silent a.out
(gdb) set height 0
(gdb) list
1       #include <stdio.h>
2       int main(int argc,char** argv)
3          {
4          int i;
5          char* input;
6          
7          input=-1;
8          for (i=0;i<=100;i++)
9             printf("%d ",i);
10         kill(8,getpid());
(gdb) break 9 if (i==20) 
Breakpoint 1 at 0x8048170: file debugtest.c, line 9.
(gdb) run
Starting program: /home/mufti/kurse/debug/a.out 

Breakpoint 1, main (argc=1, argv=0xbffff654) at debugtest.c:9
9             printf("%d ",i);
(gdb) print i
$1 = 20
(gdb) next
8          for (i=0;i<=100;i++)
(gdb) until
10         kill(8,getpid());
(gdb) continue
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x804dae5 in _IO_str_init_static ()
(gdb) where
#0  0x804dae5 in _IO_str_init_static ()
#1  0x8048230 in vsscanf ()
#2  0x8048200 in sscanf ()
#3  0x80481c6 in main (argc=1, argv=0xbffff654) at debugtest.c:12
(gdb) up
#1  0x8048230 in vsscanf ()
(gdb) up
#2  0x8048200 in sscanf ()
(gdb) up
#3  0x80481c6 in main (argc=1, argv=0xbffff654) at debugtest.c:12
12         sscanf(input,"%s",input);
(gdb) print input
$2 = 0xffffffff <Address 0xffffffff out of bounds>
(gdb) quit
The program is running.  Exit anyway? (y or n) y
$gdb -silent a.out -x debug.in < aout.in