使用 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 程序