【发布时间】:2017-09-07 04:16:42
【问题描述】:
代码(m1.cpp):
#include <iostream>
using namespace std;
int main (int argc, char *argv[])
{
cout << "running m1" << endl;
return 0;
}
GDB 版本:GNU gdb (GDB) 7.6.2
使用:g++ -g m1.cpp
命令行历史:
(gdb) b main
Breakpoint 1 at 0x40087b: file m1.cpp, line 6.
(gdb) r
Starting program: .../a.out
Program received signal SIGSEGV, Segmentation fault.
0x00002aaaaaac16a0 in strcmp () from /lib64/ld-linux-x86-64.so.2
(gdb) c
Continuing.
Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.
(gdb)
当我在不设置任何断点的情况下运行时,它运行时不会出错。
根据要求:
(gdb) bt
#0 strcmp () from /lib64/ld-linux-x86-64.so.2
#1 in check_match.12104 () from /lib64/ld-linux-x86-64.so.2
#2 in do_lookup_x () from /lib64/ld-linux-x86-64.so.2
#3 in _dl_lookup_symbol_x () from /lib64/ld-linux-x86-64.so.2
#4 in _dl_relocate_object () from /lib64/ld-linux-x86-64.so.2
#5 in dl_main () from /lib64/ld-linux-x86-64.so.2
#6 in _dl_sysdep_start () from /lib64/ld-linux-x86-64.so.2
#7 in _dl_start () from /lib64/ld-linux-x86-64.so.2
#8 in _start () from /lib64/ld-linux-x86-64.so.2
#9 in ?? ()
【问题讨论】:
-
无法使用 GDB 7.12.0 重现。
-
你是说我需要更新 GDB 吗?我所处的环境被许多其他程序员使用,所以我真的很好奇为什么它只会发生在我身上。
-
你是如何编译你的代码的?你是如何安装 gdb 的?
-
请张贴
bt输出。 -
程序在 GDB 之外运行是否正常?
标签: c++ linux segmentation-fault gdb