当前位置:  开发笔记 > 编程语言 > 正文

我执行ctrl c时调试分段错误

如何解决《我执行ctrlc时调试分段错误》经验,为你挑选了3个好方法。

我取消程序时出现分段错误.我正在使用gdb进行调试,问题是当我在调试时按Ctrl-C gdb不会取消程序并执行它应该做的就是停止它.

我想要的是执行Ctrl-C并且不允许gdb停止它.有没有办法做到这一点?还有其他调试建议吗?我不能使用printf,因为我真的不清楚问题的来源.



1> Charlie Mart..:

gdb正在拦截信号.按CTRL-C时,实际上是导致终端驱动程序生成SIGINT.

您需要做的是让GDB使用signal命令生成SIGINT .语法是

信号NUM

和man信号会告诉你信号编号(在这种情况下,SIGINT是信号2,所以signal 2会这样做.)

更新

果然,您可以使用符号名称. info signal会告诉你所有的名字等

哦,顺便说一下,你可能已经为SIGINT安装了一个信号处理程序,并且参数不正确.


您还可以为信号使用符号名称,例如"signal SIGINT".

2> ruds..:

另一种方法是handle SIGINT noprint pass在运行程序之前通过在gdb提示符下键入来阻止gdb捕获SIGINT .



3> Scottie T..:

一种选择是将未在调试器中运行时生成的核心文件加载到gdb中.在gdb中,键入core-file [filename].

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有