代碼(m1.cpp):爲什麼gdb不適用於這個簡單的Hello World程序?
#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重現。 – nwp
您是否建議我需要更新GDB?我所處的環境被許多其他程序員使用,所以我很好奇爲什麼它只發生在我身上。 – Quark
你是如何編譯你的代碼的?你是如何安裝gdb的? –