使用 Netbeans/gdb 调试 C 会立即以 SIGSEGV 终止?

Posted

技术标签:

【中文标题】使用 Netbeans/gdb 调试 C 会立即以 SIGSEGV 终止?【英文标题】:Debugging C with Netbeans/gdb terminates immediately with a SIGSEGV? 【发布时间】:2012-11-08 18:52:37 【问题描述】:

在 Ubuntu 上使用 Netbeans 中的 C 语言进行开发时,在开发的某个阶段,无法在 Netbeans 调试器中启动程序(使用 gdb)。启动调试过程甚至无法执行main 函数的第一行。即使是第一行的断点也无济于事。进程在断点被命中之前崩溃。

状态栏中显示的消息:

程序被信号 SIGSEGV 终止

该程序在调试器之外运行良好,直接使用 gdb 调试程序(无需 Netbeans 包装)也可以正常运行。

我已经想出了如何解决这个问题(见下文),但无论如何我都会发布这个问题,以便其他人在遇到同样问题时找到解决方案。

【问题讨论】:

【参考方案1】:

原来我设置的“手表”是罪魁祸首。当我将它们全部删除时,调试正常进行。

我不确定是哪款手表引起了问题。 至少有一个函数调用在错误的时间调用时可能会出现段错误。这是我最怀疑的一个。

我认为条件断点的不幸条件会导致类似的行为。

希望这会有所帮助!

【讨论】:

以上是关于使用 Netbeans/gdb 调试 C 会立即以 SIGSEGV 终止?的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Xcode 在运行时问题(表示为紫色的小三角形)被发现时就立即中断以供调试

使用 fprintf 调试调用 C DLL 的 MFC 程序

尝试调试 WebDriver E2E 测试时,Chrome 开发人员工具会立即关闭

Pycharm调试器立即退出139代码

应用程序仅在调试模式下崩溃

立即窗口 VIsual studio 调试 undefined