2014-03-29 83 views
0

我想將GDB命令輸出記錄到日誌文件中。爲腳本中的GDB日誌文件賦予唯一名稱

這是使用下面的命令來完成:

set logging file outfulfile.txt 

但是,而不是簡單的outfulfile.txt,我想給一個唯一的名稱文件;例如outfulfile-PID.txt。這是因爲我將有多個進程同時生成輸出,並且我希望每個進程都登錄到它自己的唯一文件。

如何以編程方式在GDB腳本中派生這樣的文件名?

回答

1

有幾種方法。

一個比較簡單的方法是使用gdb的「eval」命令。它替代了printf這樣的參數,然後將結果作爲gdb命令執行。這是一個新的命令。

如果你沒有「eval」,你可能仍然有Python腳本。在這種情況下,你可以寫一個短(一行)的Python腳本一樣:

(gdb) python gdb.execute('set logging file ' + .. your logic here ..) 

如果你沒有Python腳本,那麼你的GDB是真的老了,你應該升級。然而,你仍然可以完成你想要的東西,只是用一些可怕的旋轉來使用「shell」,然後寫出一個腳本,然後「源代碼」回到gdb中。雖然這種技術在這種情況下似乎有些困難。