2010-01-28 42 views
31

總的來說,我看到了過程的pid它會在後臺運行,並使用命令dbx -a <pid>使用PID

同樣如何我能做到用gdb它開始這一進程的dbx啓動gdb?

回答

33

有兩種方法。

在命令行中,包括PID爲可執行文件名後的說法:

gdb /path/to/prog PID 

從GDB中,你可以使用附加命令:

gdb /path/to/prog 
gdb> attach PID 

雖然指定的命令行更加簡潔,如果你有一個名字與pid相同的核心文件(例如,對於pid 2345,核心文件必須命名爲「2345」),那麼gdb會有一些風險打開核心文件。無可否認,這種情況的發生機率很小。

3

從gdb的手冊頁:

可以,而是指定一個進程ID作爲第二個參數,如果你想調試一個正在運行的進程:

gdb program 1234 
42

除了以前就可以直接使用

gdb -p <pid> 
+0

這是正確的答案。將GDB附加到PID不應以任何方式涉及指定可執行文件的路徑。正確的解決方案應該只涉及PID,沒有別的。 – AnT 2018-01-23 23:45:01