2012-07-16 28 views
0

我最近下載MI庫並執行/讀取一些示例代碼。在我看到的實施是通過一個單獨的程序像下面的所有示例:GDB MI機制調試自執行程序

Main Program 
Interact with GDB 
exec another program 
Gather Debug info of the another program 

我的問題是我們如何能夠調用/當前線程/程序中實現自身GDB附上即這種自我執行過程。

回答

1

我們如何能夠調用/當前線程/程序本身即內實現GDB的MI重視這種自我執行/運行的進程GDB,然後告訴它一步地執行步驟

你不能。

想一想:GDB在連接後會做的第一件事情是stop您的程序,並等待下一步做什麼的指示。那時你的程序應該發送GDB continue命令,除了它不能因爲它已經被停止了

現在,如果你的程序是多線程的,你問GDB在不停模式,執行和您精心安排的東西,你的線程執行GDB交互本身是從來沒有停止過,那麼或許這可以工作。我懷疑它會可靠地工作。

+0

但是在GDB中,我們可以使用其PID來附加/分離進程。我們在這裏沒有辦法達到這個目標嗎? – Prakash 2012-07-17 10:15:26

+0

@Prakash「但是在GDB中,我們可以使用其PID來附加/分離進程」 - 此評論表明您不明白我的答案。我(再次)建議你*想*。 – 2012-07-17 10:30:35

+0

@僱用俄羅斯人,爲什麼不停止模式不能可靠地工作?我想在多線程代碼的單元測試中使用它(例如,等到其他線程進入函數時)。它將取代真正的侵入式互斥/ cond-var測試工具。 – Velkan 2016-10-16 07:23:41