我有一个正在编写的程序,但出现了一些内存错误。我通过 gdb 运行它并where
在发生内存错误后进行调用,我得到以下输出:
#0 0xb7fdd424 in __kernel_vsyscall ()
#1 0xb7f189b1 in ?? () from /lib/i386-linux-gnu/libc.so.6
#2 0xb7e979fe in ?? () from /lib/i386-linux-gnu/libc.so.6
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
我之前也遇到过类似的错误,解决方案是使用 -ggdb 编译器选项。但我正在使用该选项,您将在我的 Makefile 中看到:
shell: myshell.c
gcc -ansi -ggdb -Wall -pedantic-errors -o myshell myshell.c
为什么 gdb 中没有显示行号或变量名?