在 Ubuntu 上的 Netbeans 中使用 C 进行开发时,在开发过程中的某个时刻,无法在 Netbeans 调试器(使用 gdb)中启动程序。启动调试进程甚至无法执行 main
函数的第一行。即使在第一行设置断点也无济于事;进程在断点被击中之前崩溃。
状态栏中显示的消息:
程序被信号 SIGSEGV 终止
该程序在调试器之外运行得很好,并且直接使用 gdb 调试该程序(无需 Netbeans 对其进行包装)也可以正常运行。
我已经想出了如何解决这个问题(见下文),但无论如何我都会发布这个问题,以便其他人在遇到同样问题时找到解决方案。
最佳答案
原来我设置的“ watch ”是罪魁祸首。当我把它们全部删除后,调试就正常进行了。
我不确定是哪个 watch 导致了问题。 至少有一个函数调用在错误的时间调用时可能会出现段错误。这是我最怀疑的。
我认为条件断点的不幸情况可能会导致类似的行为。
希望这有帮助!
关于c - 使用 Netbeans/gdb 调试 C 会立即终止并出现 SIGSEGV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295767/