BREAKPOINT process 554 function main() in myprog.c 10: for(i=1;i * sdb将在main()函数中设置第一个断点处停下来并显示该行的语句。r后面给出的是传给可执行程序myprog的两个参数。因此上述命令同在shell提示符下输入: $ myrprog 111 2 是相同的。不同的只是在sdb中程序的执行会在断点处停下来。 如果只输入 * r 命令,sdb使用最近一次执行调试程序时给它提供的参数来启动之。如果想不带任何参数来重新启动程序的运行,可使用 * R 命令。
* s STEPPED process 584 function main() in myprog.c 14: printf("The %dth value'%s' \tis BAD!\n",i,argv); * sdb在执行完当前语句之后,将当前行后移一行并显示出其代码。对于用户自定义的函数调用,S命令并不将其当成是一条语句,此时它将指示sdb进入该函数(使之成为当前函数)。如我们可以接着上面输入下列命令:
* s STEPPED process 584 function main() in myprog.c 11: if(TestInput(argv)== TESTOK) * s BREAKPOINT process 594 function main() in myprog.c 11: if(TestInput(argv)==TESTOK) * s BREAKPOINT process 584 function TestInput() in myfunc.c 9: {while (* valueInput)} * s