這段時間,由于做的是Linux環(huán)境下的C++程序移植工作,總會碰到"段錯誤/已放棄"之類的問題,可以通過以下方式得到程序退出時的調(diào)用堆棧信息,方便錯誤的定位
- 打開生成core.xxx文件開關(guān):設(shè)置ulimit -c unlimited,也可在環(huán)境變量中設(shè)置,以避免每次打開終端時都要進(jìn)行設(shè)置;
- 執(zhí)行l(wèi)inux下debug版本的應(yīng)用程序: ./AppName;
- 程序出現(xiàn)"段錯誤/已放棄"而退出時,會在當(dāng)前運行目錄下產(chǎn)生 core.xxx文件(其中xxx是一串?dāng)?shù)字);
- 使用gdb運行core.xxx文件: gdb ./AppName core.xxx;
- 在gdb>下執(zhí)行info stack查看最后的堆棧,從堆棧中得到最后退出時的信息。
更多操作詳情查看: Linux下發(fā)生段錯誤時如何產(chǎn)生core文件