gdb 给出一个函数名后跟一个数字而不是文件和行号
gdb giving a function name followed by a number instead of file and line number
我的程序中有一个分段错误,我正在使用 gdb
来确定它发生的位置。但是,我无法看到发生错误的明确行号。
下面是我的输出截图。
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 20065168 (LWP 4645)]
0x007e537f in _int_free () from /lib/libc.so.6
(gdb) backtrace
#0 0x007e537f in _int_free () from /lib/libc.so.6
#1 0x007e90f0 in free () from /lib/libc.so.6
#2 0x080d9e67 in CRYPTO_free ()
#3 0xbfd15f7c in ?? ()
#4 0xbfd16108 in ?? ()
#5 0x08070b3e in function_random.19532 ()
#6 0x00000001 in ?? ()
#7 0x00000000 in ?? ()
(gdb)
frame 5
是我写的那段代码,但是不太明白是什么意思
有人可以解释一下吗?
在您的情况下,调试符号很可能不存在于二进制文件中。这就是为什么 gdb
无法读取 调试 信息并显示它们。
重新编译代码,启用调试。
示例:对于 gcc
,使用 -g
选项。
我的程序中有一个分段错误,我正在使用 gdb
来确定它发生的位置。但是,我无法看到发生错误的明确行号。
下面是我的输出截图。
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 20065168 (LWP 4645)] 0x007e537f in _int_free () from /lib/libc.so.6 (gdb) backtrace #0 0x007e537f in _int_free () from /lib/libc.so.6 #1 0x007e90f0 in free () from /lib/libc.so.6 #2 0x080d9e67 in CRYPTO_free () #3 0xbfd15f7c in ?? () #4 0xbfd16108 in ?? () #5 0x08070b3e in function_random.19532 () #6 0x00000001 in ?? () #7 0x00000000 in ?? () (gdb)
frame 5
是我写的那段代码,但是不太明白是什么意思
有人可以解释一下吗?
在您的情况下,调试符号很可能不存在于二进制文件中。这就是为什么 gdb
无法读取 调试 信息并显示它们。
重新编译代码,启用调试。
示例:对于 gcc
,使用 -g
选项。