虽然我包含了-g标志,但gdb没有给出错误的行号

时间:2016-04-23 12:45:42

标签: c multithreading gdb

我在编写的c程序中遇到过段错误。通常,我能够在gdb中运行该程序,这将让我知道问题发生在哪一行,以便我能够修复它。但是,无论出于何种原因,此时没有错误提供行号。

什么原因可能导致gdb无法返回段错误的行号?

我通常使用-g进行编译,在这种情况下我也尝试了-ggdb,这会得到相同的结果。 Gdb确实说线程已退出代码3221225477,这是一个段错误,但这并没有真正提供足够的信息才有用。

编辑:gdb的输出:

[Thread 10064.0x2aa0 exited with code 3221225477]
[Thread 10064.0x2c3c exited with code 3221225477]
[Thread 10064.0x1e40 exited with code 3221225477]
[Inferior 1 (process 10064) exited with code 030000000005]

编译器选项(来自sublime text 2 build文件):

gcc $file_base_name.c -std=gnu99 -I../zdk -L../zdk -lzdk -lncurses -g -o $file_base_name

编辑:事实证明我正在尝试访问释放的内存。问题仍然存在:为什么gdb没有告诉我这是发生了哪一行?

0 个答案:

没有答案