对于不起眼的标题感到抱歉,想不出更好的事情。
当我通过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
(或按 Enter )。如何告诉gdb退出打印这样的行?
1273 in fileops.c
我可以使用一些配置文件或命令行选项吗?
答案 0 :(得分:2)
如何告诉gdb退出打印这样的行?
使用step
命令,您要求 GDB准确打印此信息。
如果您不想要该信息,则应停止询问。
我经常想念我正在寻找的Seg Fault。
如果您只是run
,GDB会在您获得SIGSEGV
后自动停止,您不能错过。
您可能想要的是在SIGSEGV
之前的某个时间停留在您的代码中,然后从那里开始。有几种技术可以实现这一点,reverse debugging就是其中之一。使用replay debugging是另一个。
很难提供更多建议,因为你没有显示你实际试图做什么。
答案 1 :(得分:2)
您确定需要在@extends('layouts.app')
@section('navbar-dropdown')
<li><a class="blue-text waves-effect" href="#!">Create Project</a></li>
<li><a class="blue-text waves-effect" href="#!">Manage Projects</a></li>
<li class="divider"></li>
<li><a class="blue-text waves-effect" href="#!">Settings</a></li>
<li><a class="blue-text waves-effect" href="{{ url('auth/logout') }}">Logout</a></li>
<li class="divider"></li>
<li><a class="blue-text waves-effect" href="#!">Help</a></li>
<li><a class="blue-text waves-effect" href="#!">Report a Problem</a></li>
@endsection
中逐步执行glibc代码吗?
如果您只想调试自己的代码,那么在进入代码并继续调试代码后,fileops.c
当前框架应该退出finish
函数。
答案 2 :(得分:1)
这就是step
的工作原理 - 它通过代码步骤。
断点怎么样?如果您设置了一个,调试器将停在那里,让您手动单步执行代码。
对于中断执行的分段错误或类似信号,当程序停止以获取有关位置执行停止的信息时,您可以run
和backtrace
。然后在那里设置断点,程序将停在违规指令处。