GDB 在 next/stop 之后没有向我显示行源,并且只显示行号和源文件,如下所示:
(gdb) n
7 in test/test.c
而我希望它显示当前行,如下所示:
(gdb) next
17 char * good_message = "Hello, world.";
.gdbinit 中的任何设置可以帮助我做到这一点吗?
GDB 在 next/stop 之后没有向我显示行源,并且只显示行号和源文件,如下所示:
(gdb) n
7 in test/test.c
而我希望它显示当前行,如下所示:
(gdb) next
17 char * good_message = "Hello, world.";
.gdbinit 中的任何设置可以帮助我做到这一点吗?
而我希望它显示当前行,就像这样
在许多平台上,例如ELF
,编译器记录源(在您的情况下)的路径test/test.c
和编译目录,允许 GDB 显示源,无论您在哪个目录中调用它。
但是很多平台不够灵活,没有地方记录编译目录。directory
在这样的平台(例如 AIX)上,您必须要么在编译目录中启动 GDB,要么用命令告诉它在哪里寻找源代码。
可能我的回答可能不是一个完美的解决方案,但编译源程序的方式很重要。例如,在我的情况下,如果您这样做g++ fib.cpp -o fib
然后尝试运行gdb fib
它,它将不会打印带有list
. 使用调试标志g++ -g fib.cpp -o fib
然后使用 gdb 运行解决了我的问题。