得到seg故障後,我使用了gdb a.out core命令。後來我用backtrace(bt),這是gdb告訴我的爲什麼我會遇到seg故障?
警告:核心文件可能與指定的可執行文件不匹配。
警告:錯誤讀數在0xfbe8
警告共享庫列表條目:錯誤讀取共享庫列表條目在0x74c085ff
核心是通過「family.out smith.ged」產生。
程序以信號11終止,分段故障。
(poundsign)0 0x08086a6在count_records()
(GDB)BT
(poundsign)0 0x080486a6在count_records()
(poundsign)1 0x08048906在__libc_csu_init()
(英鎊)2 0xbf85624c在??()
(英鎊)3 0xbf856310在?? ()
回溯停止:以前的FRAM內這個框架
可能有人給我一些見解,以什麼可能導致此賽格故障(堆棧損壞?)?通常gdb給我的程序中的行號,但這次它沒有。
你有機會訪問你並不擁有的內存。除此之外,可能需要看代碼! – 2013-02-26 04:49:15
gdb輸出表明您正在查看由不同二進制文件生成的核心文件。要調試你的應用程序,你可以在gdb中運行它(使用「gdb binary」,然後是「run」命令),或者使用像valgrind之類的東西。 – vanza 2013-02-26 04:50:17
絕對使用valgrind進行segfaults。 – matzahboy 2013-02-26 04:50:33