我想要将GDB命令输出记录到日志文件中。
这可以使用以下命令来完成:
set logging file outfulfile.txt
但是,我希望为文件指定一个惟一的名称,而不是简单的outfulfile.txt
;例如outfulfile-PID.txt
。这是因为我将有几个进程同时产生输出,并且我希望每个进程都记录到自己的唯一文件中。
如何在GDB脚本中以编程方式派生这样的文件名?
发布于 2014-03-29 01:53:11
这里有几种方法。
一种相对简单的方法是使用gdb的"eval“命令。它替换像printf这样的参数,然后将结果作为gdb命令执行。这是一个新的-ish命令。
如果你没有"eval“,你可能还有Python脚本。在这种情况下,您可以编写一个简短的(一行) Python脚本,如下所示:
(gdb) python gdb.execute('set logging file ' + .. your logic here ..)
如果您没有Python脚本,那么您的gdb真的很旧,您应该升级。然而,您仍然可以完成您想要的,只需使用"shell“进行一些可怕的循环,然后编写一个脚本,然后将其”源“回gdb。尽管这种技术在这种情况下似乎有些困难。
https://stackoverflow.com/questions/22725437
复制相似问题