我想将GDB命令输出记录到日志文件中。
使用以下命令完成此操作:
set logging file outfulfile.txt
但是,我想给文件一个唯一的名称,而不是简单的outfulfile.txt
;例如outfulfile-PID.txt
。这是因为我将有几个进程同时产生输出,我希望每个进程都能记录到它自己的唯一文件。
如何以编程方式在GDB脚本中派生此类文件名?
答案 0 :(得分:1)
方法很少。
一种相对简单的方法是使用gdb" eval"命令。它替换像printf这样的参数,然后将结果作为gdb命令执行。这是一个新命令。
如果你没有" eval"你可能还有Python脚本。在这种情况下,您可以编写一个简短的(一行)Python脚本,如:
(gdb) python gdb.execute('set logging file ' + .. your logic here ..)
如果你没有Python脚本,那么你的gdb真的很旧,你应该升级。然而你仍然可以完成你想要的东西,只是使用" shell"然后写出一个脚本然后你来源"回到gdb。虽然这种技术在这种情况下看起来有些困难。