GDB调试中将信号发送给程序的方法

本文介绍了如何在GDB中改变SIGINT信号的处理方式,使其不自动停止程序并打印,以及如何在调试过程中直接发送信号给应用程序。详细步骤包括设置断点和使用`signal`命令发送SIGINT。
摘要由CSDN通过智能技术生成

1)改变gdb信号处理的设置 
比如,以下设置会告诉gdb在接收到SIGINT时不要停止、打印出来、传递给调试目标程序 (handle SIGINT nostop print pass)

(gdb) handle SIGINT nostop print pass 
SIGINT is used by the debugger. 
Are you sure you want to change it? (y or n) y 


Signal Stop Print Pass to program Description 
SIGINT No Yes Yes Interrupt 
(gdb) 

2)使用gdb命令直接向调试的应用程序发送信号 
首先在你希望发送信号的语句处设置断点,然后运行程序,当停止到断点所在位置后,用gdb的signal命令发送信号给调试目标程序

(gdb) signal SIGINT 
Continuing with signal SIGINT. 


Breakpoint 1, handler (signal=2) at main.cpp:15 
15 printf("Signal handler...\n"); 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值