这在gdb中意味着什么?

bla*_*oth 1 c debugging gcc gdb

程序接收信号SIGSEGV,分段故障.execute_jobs()中的0x08049795当前语言:auto; 目前asm

(gdb)信息符号0x08049795 execute_jobs + 22 in section .text

(gdb)ptype 0x08049795 type = int

如何获取发生错误的行号?

Nik*_*sov 7

您的二进制文件未编译调试信息.至少重建-g(或者-ggdb,或者-ggdb -g3,参见GCC手册.)

GDB输出的确切行:

(gdb) info symbol 0x08049795 execute_jobs + 22 in section .text
Run Code Online (Sandbox Code Playgroud)

表示地址处的指令0x08049795,即从函数开始的22个字节execute_jobs,产生了分段错误.

(gdb) ptype 0x08049795 type = int
Run Code Online (Sandbox Code Playgroud)

在这里,您要求输入整数类型,GDB很乐意回复.做

(gdb) x/10i 0x08049795
Run Code Online (Sandbox Code Playgroud)

要么

(gdb) disassemble execute_jobs
Run Code Online (Sandbox Code Playgroud)

看实际指示.