很抱歉标题不起眼,想不出更好的了。
当我在GDB中运行我的程序以查找分段错误时,我会得到数千行这样的垃圾:
(gdb) step
_IO_new_file_xsputn (f=0x76fa0b40 <_IO_2_1_stdout_>, data=0x7efff284, n=7) at fileops.c
1279 fileops.c: No such file or directory.
(gdb) step
1273 in fileops.c
(gdb) step
1279 in fileops.c
(gdb) step
1286 in fileops.c
(gdb) step
1288 in fileops.c
(gdb) step
1289 in fileops.c
(gdb) step
1292 in fileops.c
(gdb) step
1294 in fileops.c
(gdb) step
1292 in fileops.c
……一个接一个。这使得调试非常困难和乏味,因为:
我必须反复键入
step
(或按回车键)。我几乎看不到程序的输出,因为它隐藏在毫无意义的信息中。
如果我反复按回车键,我经常会错过正在查找的Seg故障。
我怎样才能让gdb停止打印这样的行呢?
1273 in fileops.c
我可以使用一些配置文件或命令行选项吗?
最佳答案
您确定需要单步执行fileops.c
中的glibc代码吗?
如果您只想调试自己的代码,那么您应该在跨入当前帧并继续调试代码之后退出finish
函数。