程序收到信号 SIGSEGV,段错误。 0x08049795 in execute_jobs() 当前语言:自动;目前汇编
(gdb) 信息符号 0x08049795 .text 部分中的 execute_jobs + 22
(gdb) ptype 0x08049795 类型 = 整数
如何获取错误发生的行号?
最佳答案
您的二进制文件未使用调试信息进行编译。至少使用 -g
(或 -ggdb
,或 -ggdb -g3
,参见 GCC manual。)
GDB 输出的确切行:
(gdb) info symbol 0x08049795 execute_jobs + 22 in section .text
表示地址 0x08049795
(距离函数 execute_jobs
开头 22 个字节)的指令产生了段错误。
(gdb) ptype 0x08049795 type = int
这里你问的是一个整数的类型,GDB 很乐意回答。做
(gdb) x/10i 0x08049795
或
(gdb) disassemble execute_jobs
查看实际说明。
关于c - 这在 gdb 中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3095926/