gdb与信号
http://simohayha.iteye.com/blog/493091
?
gdb可以監測在你的程序中的任何信號。?
主要靠的命令是:
handle signal?[keywords...]?
?
這里的keywords可以有以下內容:
1 nostop gdb接收到信號不會停止程序,而只是打印出一段message?
2 stop 和上面類似只不過會停止程序。?
3 print 當信號發生必須打印一條消息通知。?
4 noprint 信號發生,gdb將不會打印任何東西。?
5 pass和noignore 這兩個是同義的。表示信號對你的程序是可見的。?
6 nopass和ignore 這兩個也是同義的。和上面相反。。?
?
線程模式,
set scheduler-locking on|off|step
默認為off,也就是所有的線程都一起走。
?
set schedule-multiple mode?
這個是針對進程的線程,如果為on,那么所有進程的線程都能夠執行。
?
none-stop模式。?
顧名思義,當程序在gdb中停止,只有當前的線程會被停止,而其他的線程將會繼續運行。?
這個時候step,next這些命令就只對當前的線程起作用。?
我們要打開這個模式需要這樣操作:?
?
在all-stop模式中interrupt將會停止所有的線程。而在none-stop中只會停止當前線程。interrupt -a此時就能停止所有線程。’?
當你有多個線程,你此時只想給某個線程設置斷點,這個時候可以用這個命令:?
break linespec thread threadno?
break linespec thread threadno if ...?
?
linespec為源碼行號,threadno為線程id。?
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
- 上一篇: C/C++通用Makefile
- 下一篇: spring 配置多数据源