GDB日志文件存储位置咨询及未找到日志文件的疑问
GDB日志文件存储位置及找不到的解决办法
Hey,我来帮你理清这个问题~
默认存储位置
首先说GDB日志的默认位置:如果你用set logging on开启日志但没指定路径,GDB会把日志文件(默认叫gdb.txt)存在你启动GDB时所在的工作目录,而不是你的用户主目录/home/shirish——除非你当时就是在这个目录下启动的GDB。
举个例子:要是你在/tmp里启动GDB调试程序,那默认的gdb.txt就乖乖待在/tmp里,不会跑到你的主目录去。
找不到日志的解决办法
你说在/home/shirish下找不到日志,十有八九是启动GDB的目录不对。这里有两个简单的解决思路:
1. 先切换目录再启动GDB
在终端里先跳转到你想要存日志的目录:
cd /home/shirish
然后再启动GDB,开启日志后,文件就会生成在这个目录下了。
2. 开启日志时直接指定完整路径
不用切换目录,在GDB里直接给日志文件指定完整路径就行,比如:
set logging file /home/shirish/my_gdb_log.txt set logging on
这样日志就会精准写入你指定的位置,再也不用到处找了。
顺带说下你提到的“GDB为何不支持别名”的疑问
其实GDB是支持自定义别名的哦!你可以用define命令自己造别名,比如想把backtrace(栈回溯)简化成短一点的命令,或者加默认参数:
define bt backtrace 10 # 只显示前10层栈帧 end
要是想让这个别名每次启动GDB都生效,用save commands ~/.gdbinit把它保存到GDB的初始化文件里就行。之前如果尝试别名没成功,可能是写法有问题,可以检查下命令定义的语法~
内容的提问来源于stack exchange,提问作者shirish




