c - 这在 gdb 中意味着什么?

标签 c debugging gcc gdb

程序收到信号 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/

相关文章:

php - 您如何调试 CodeIgniter 应用程序?

c++ - C++11 中的固定长度可变参数包

javascript - 使用 .show() 和 .hide() 功能对 JavaScript/JQuery 代码进行故障排除

c - 当数组不包含 null 终止符时,为什么 strlen() 返回奇怪的结果?

c - 什么是 glibc GLRO 宏?

c - 来自 Linux 内核模块的暂停指令不起作用

debugging - netbeans同时调试两个项目

c - 奇怪的 gcc 警告行为

c++ - type_info 不是 RTTI 的一部分吗?

c - for 循环无法正常运行