如何在沒有斷點的情況下停止gdb執行?GDB如何在沒有斷點的情況下停止執行?
回答
只需使用常規中斷Ctrl - c將工作得很好。 GDB只是將SIGINT
轉發到調試過程,然後死亡。 GDB會捕獲非標準的出口並在那裏破壞進程,所以你仍然可以檢查所有線程,它們的堆棧和變量的當前值。這工作正常,但你會更好使用斷點。唯一一次我發現自己這樣做,如果我覺得我已經陷入某種無限循環。
我試過^ C但它沒有工作我無法在提示符上鍵入任何內容。此外,該程序是多線程的用戶界面,這可能是問題嗎? – anand 2009-01-07 19:25:16
Ctrl-C作爲我想要的炒作,但我不會在GDB 7.7.1上重現這一點:該過程似乎沒有得到Ctrl-C並死亡。它只被GDB阻止,沒有被殺害。再次點擊`c`或`detach`使它從停止的地方繼續。 – 2015-05-08 10:45:03
只需鍵入BREAK,不帶任何參數。
分段,當不帶任何參數調用時,斷裂設置在下一個指令斷點所選擇的堆棧幀
啓動一個外殼將要執行,用ps找到進程ID,並通過使用發送SIGSTOP或SIGINT kill命令(例如kill -INT pid)。
GUI應用程序不會對^ C和^做出反應,並且不會影響控制檯應用程序的操作。這段日子以來最不平凡的項目往往是在GUI應用程序主要用於GUI應用程序或庫,你有兩種選擇:
發送SIGSTOP從單獨的終端中的應用。這很麻煩。
如果在GDB提示符下按^ C或^ Break,GDB將終止,但應用程序仍將繼續運行。然後,您可以再次運行GDB以使用
-p
命令行開關附加到它。這會失去調試器狀態。
在這兩種情況下,你可能會有所幫助:tasklist | grep
ProcessName
| sed -e 's/
ProcessName
*\([0-9]*\).*/gdb
ModuleName
-pid=\1/' > rungdb.sh
您可以修改這個用在shell腳本,生成文件或發送的信號,而不是附加GDB的。
info threads
將幫助你找出你想看的線程。然後使用thread
ThreadNumber
切換到它。
- 1. Visual Studio在沒有任何原因的情況下停止任何斷點
- 2. 在沒有中斷的情況下停止Python中的代碼
- 3. GDB斷點不會停止
- 4. 在沒有顯示錯誤的情況下調試GDB中斷
- 5. 如何在沒有stop()方法的情況下停止線程?
- 6. 如何在沒有javascript的情況下停止CSS動畫
- 7. 如何在沒有System.Threading.Thread.Sleep的情況下停止程序。 C#?
- 8. C#:如何在不停止程序執行的情況下執行線程
- 9. 在沒有放置斷點的情況下在chrome中查看執行路徑
- 10. Netbeans 8.2執行沒有在中斷點停止
- 11. 在不停止執行流程的情況下顯示「JOptionPane.showMessageDialog」
- 12. 如何在沒有WIN32 API的情況下執行此操作?
- 13. 如何在沒有eval的情況下執行此操作()
- 14. 如何在沒有構建文件的情況下執行Ant
- 15. 如何在沒有密碼提示的情況下執行mysqldump?
- 16. 如何在沒有事務的情況下執行sproc?
- 17. GDB如何停止執行其他進程? GDB如何工作?
- 18. 如何在不引發錯誤的情況下停止MSBuild的執行?
- 19. 如何僅在執行某行後停止斷點?
- 20. 如何在不停止測試執行的情況下驗證文本RC
- 21. 如何讓GDB停止斷言失敗?
- 22. gdb沒有達到斷點
- 23. GDB:斷點沒有命中
- 24. Excel VBA錯誤1004只有在沒有斷點的情況下運行
- 25. SelectBooleanCheckbox在沒有鼠標懸停的情況下獲得焦點
- 26. 在沒有用戶點擊的情況下執行點擊功能?
- 27. 如何在不停止站點的情況下更新ASP.Net站點dll
- 28. 在沒有win32com.client的情況下自動執行Outlook的建議
- 29. 在沒有中斷()的情況下,新中斷會在中斷()之後排隊並執行嗎?
- 30. 如何在沒有重新分區的情況下並行執行Spark UDF
過程如何開始?你是如何重視它的?默認情況下,使用`gdb -pid`附加可以使進程停止。你打了`c`後的意思? – 2015-05-08 10:47:40