如何在日志文件中包含GDB命令?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在日志文件中包含GDB命令?相关的知识,希望对你有一定的参考价值。

我在要执行的文件中有一些gdb命令。我还希望命令运行和输出记录到文件中。

我在名为gdb.in的文件中编写了以下gdb脚本。

set logging file gdb.out
set logging on
echo hi

printf "bye
"
quit

但是,如果我执行此gdb脚本,我只能看到记录到gdb.out的输出。我没有看到执行的命令。

$ gdb -x gdb.in
GNU gdb (GDB) Red Hat Enterprise Linux (7.2-60.el6)
Copyright (C) 2010 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
hi
bye
$ cat gdb.out
hi
bye

据我所知,几年前,我找到了记录命令的方法。以前的每个命令都以+-sign作为前缀出现在日志文件中。例如,几年前我就能得到这样的输出。

+ echo hi

hi
+ printf "bye
"
bye
+ quit

但是我无法回想起我做了什么来获得这样的输出。搜索网络也没有帮助我。我在How to dump the entire GDB session to a file, including commands I type and their output?遇到了这个问题,但那里的答案没有捕获日志文件中执行的命令。

答案

这是GDB feature request的主题,至少12岁:-(

目前无法实现这一目标。您可以使用script来记录整个GDB会话,但这有一个明显的缺点,即还记录各种屏幕控制“垃圾”字符。

另一答案

set trace-commands on:在执行命令之前在屏幕上回显该命令。将此命令与日志记录一起使用以将命令写入文件。

以上是关于如何在日志文件中包含GDB命令?的主要内容,如果未能解决你的问题,请参考以下文章

在 gdb 中包含 malloc.c 的源代码?

在代码片段中包含类型转换

如何在 CQL 命令中包含输入参数 - 源代码

如何在运行时加载的 jsp 中包含 html 片段?

如何在 ASP.NET 中使用 log4net 在日志文件中包含 SessionID?

Linux中查看日志的常用命令