0
我有一個C++應用程序,可以在Linux(ubuntu 12.04)中調用dummy1,我想在cgdb中調試一個到gdb的curl接口。 調試需要與控制器進程同步,我有它的來源。如何檢測進程是否正在調試
編輯控制器通過http連接並通信並控制dummy1。我想在某個功能中打破dummy1,並按照我喜歡的方式進行。發生這種情況時,我希望通知控制器。然後控制器應該改變它的狀態,直到它被通知我繼續dummy1。同時它不應該試圖控制dummy1或與dummy1進行通信。
我的問題是我怎麼檢測/通知控制器是/如果我的dummy1進程正在被調試(在休息)?
你已經在想它了,只需添加一個命令行標誌並在調試器中啓動它時將它傳遞給你的應用程序。 – OneOfOne
@naxa如果這是在x86上,您可以嘗試鉤住INT1和INT3。這是一些軟件會用來防止調試的一種技術。 –
我曾經通過讓我的虛擬進程fork-exec成爲gdb實例來處理類似的問題,將pid作爲命令行的一部分發送。事實上,我實際上是通過一個帶有外部IP的'xterm'前端來完成顯示,因此我可以遠程調試它。類似的東西(可能不是*堅果,但也許是第一部分)可能適合你。 – WhozCraig