GDB没有在segfault cygwin上提供详细信息

时间:2016-10-04 22:39:39

标签: c++ gdb cygwin

所以我试图在学校的C ++项目中调试段错误。该项目使用makefile进行编译。当我在gdb下运行程序(使用cygwin)时,我得到段错误,但当我尝试使用“l”命令显示代码时,我得到的代码与预期不同,当我使用“frame”时,gdb只打印名称函数的代替而不是上次执行的代码。

Program received signal SIGSEGV, Segmentation fault.
0x000000010041570b in NodeCorrectness::eval(Alignment const&) ()
(gdb) l
1       /* advapi32.cc: Win32 replacement functions.
2
3       This file is part of Cygwin.
4
5       This software is a copyrighted work licensed under the terms of the
6       Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
7       details. */
8
9       #include "winsup.h"
10      #include <winioctl.h>
(gdb) frame
#0  0x000000010041570b in NodeCorrectness::eval(Alignment const&) ()
(gdb) 

使用backtrace我得到以下内容:

(gdb) bt
#0  0x000000000042781b in NodeCorrectness::eval(Alignment const&) ()
#1  0x0000000000421a2f in MeasureCombination::printMeasures(Alignment const&, std::ostream&) const ()
#2  0x00000000004fbedf in makeReport(Graph const&, Graph&, Alignment const&, MeasureCombination const&, Method*, std::basic_ofstream<char, std::char_traits<char> >&)
    ()
#3  0x00000000004fe6cd in saveReport(Graph const&, Graph&, Alignment const&, MeasureCombination const&, Method*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ()
#4  0x00000000004d06a7 in NormalMode::run(ArgumentParser&) ()
#5  0x000000000040a655 in main ()
(gdb)

所以gdb不让我看到segfault究竟发生在哪里。有什么理由吗?

0 个答案:

没有答案