debugging - 为什么 gdb 终端中的 Ctrl-c 不会向 gdb 进程发送 STOP 信号
问题描述
要在 gdb 中打破循环,我们需要在 gdb 终端中使用 Ctrl -c,但有时 Ctrl-c 不起作用,有没有办法打破循环?(从另一个窗口向 gdb 进程发送 SIGSTOP 或 SIGTRAP 除外)
源代码是这样的:
main() {
Initialize ():
...
while (true) //the main region of the program
{
ret = getmsg (fd, &ctrl, &data, &flags);
Process (data);
...
}
解决方案
不确定要求,但如果您不想每次都中断,可以在循环体中放置一个条件断点。现在对于您的具体问题,您可以从 gdb 提示符中发送信号,只需键入 :
singal SIGINT
。
推荐阅读
- php - 将 SOAP 值分配给变量
- php - 将 python 转换为 php - otp 会议 - Twilio
- r - 使用 R 中的采样权重进行纵向分析
- hazelcast - dotnet 客户端的流量在使用 hazelcast 时不相似
- flutter - 仅在颤动中完成路由转换后如何开始构建/加载 ListView?
- typescript - 如何以角度获取枚举的键和值?
- swift - 如何将文本文件导出为 PDF 文件(macOS Swift)?
- python - 在 discord.py 的命令中为一个参数使用多个值
- vue.js - 如何将点击的卡片按钮 id 传递给 vue.js 中的后端 URL 路径?
- android - 使用共享首选项以编程方式使 LinearLayout 在 android studio 中消失