日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

通过gdb core dump方法查看程序异常时的堆栈信息

發布時間:2023/11/27 生活经验 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 通过gdb core dump方法查看程序异常时的堆栈信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在Linux下可通過core文件來獲取當程序異常退出(如異常信號SIGSEGV, SIGABRT等)時的堆棧信息。core dump叫做核心轉儲,當程序運行過程中發生異常的那一刻的一個內存快照,操作系統在程序發生異常而異常在進程內部又沒有被捕獲的情況下,會把進程此刻內存、寄存器狀態、運行堆棧等信息轉儲保存在一個core文件里,叫core dump。core文件是程序非法執行后core dump后產生的文件,該文件是二進制文件,可以使用gdb、elfdump、objdump打開分析里面的具體內容。

產生core dump的可能原因:(1). 內存訪問越界;(2). 多線程程序使用了線程不安全的函數;(3). 多線程讀寫的數據未加鎖保護;(4). 非法指針;(5). 堆棧溢出。

查看操作系統是否開啟產生core文件:輸入命令:ulimit -c或ulimit -a, core file size為0,說明系統關閉了core dump,可通過命令:ulimit -c unlimited來打開,結果如下圖所示,注:此設置只對當前終端有效,再打開一個新的終端時,輸入ulimit -a,會發現core file size還是為0,若想始終有效,可在~/.bashrc文件最后加入命令:ulimit -c unlimited:

在Linux下執行程序時如果有提示”core dumped”信息,則會在當前目錄下產生一個core文件,若沒有產生,則可能core dump沒有打開。缺省情況下,內核在core dump時所產生的core文件放在與執行程序相同的目錄中,并且文件名固定為core,執行以下命令,可以將文件名修改為core.pid等形式,pid為執行當前程序的進程號,core_uses_pid中原始內容為0:

echo "1" > /proc/sys/kernel/core_uses_pid

測試代碼main.cpp如下:

#include <stdio.h>
#include <iostream>namespace {void func() {const char* p = "hello";delete p;
}} // namespaceint main()
{fprintf(stdout, "test start\n");func();fprintf(stdout, "test finish\n");
}

依次執行如下命令,執行結果如下圖所示,會在執行文件同一目錄下產生core二進制文件:

g++ -g -o main main.cpp
./main

如果有多個程序產生core文件,或者同一個程序多次崩潰,就會重復覆蓋同一個core文件。通過修改kernel參數,可以指定內核所生成的core dump文件的文件名,如設置core文件名形式為core_programname_time_pid,所有的core文件存放在/usr/core_log目錄下,則在終端輸入以下命令:

echo /usr/core_log/core_%e_%t_%p >> /proc/sys/kernel/core_pattern

通過gdb打開core文件:形式如下:$ gdb programname core,查看core dump時的堆棧信息,可以使用bt或where命令,如下圖所示,注:在編譯程序時加上-g選項才能夠獲取到具體的信息:

通過gdb help generate-core-file產生core文件,依次執行如下命令,執行結果如下圖所示,產生的core.pid好像不如上面方法產生的core文件信息詳細:

gdb main
help generate-core-file
start
generate-core-file

以上內容主要參考:

1.?https://blog.csdn.net/u014403008/article/details/54174109

2.?https://blog.csdn.net/ithomer/article/details/5945152

GitHub:https://github.com//fengbingchun/Messy_Test

總結

以上是生活随笔為你收集整理的通过gdb core dump方法查看程序异常时的堆栈信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久大伊人 | 国产精品野外户外 | www.猫咪av.com| 久久艹精品 | 中文字幕少妇在线三级hd | 五月天综合| 日韩在线观看视频一区二区三区 | 免费看a级黄色片 | 亚洲最大黄网 | 97精品 | 亚洲熟妇av一区二区三区漫画 | 国产精品第7页 | 四虎永久网站 | 国产无码日韩精品 | 白白色视频在线 | 中文 欧美 日韩 | 国产黄色大片在线观看 | 中国在线观看免费高清视频播放 | 国产91色 | 91丨九色丨蝌蚪丨老版 | 黄频在线播放 | 亚洲深夜福利视频 | а 天堂 在线| 国产人妻久久精品一区二区三区 | 一级特黄肉体裸片 | 99视频导航 | 毛片免费播放 | 一级黄色片视频 | 日韩精品网址 | 国产精品8888 | 久久久国产一区二区三区 | 亚洲综合色成人 | 综合久久精品 | 亚洲精品乱码久久久久久蜜桃图片 | 99mav| 日韩av中字 | 91久操| 免看一级a毛片一片成人不卡 | 捆绑调教sm束缚网站 | 久久久老司机 | 一区二区欧美视频 | 91色交视频| 久久久久无码精品国产 | 色涩视频在线观看 | 欧美xxxxhd| 97caoporn| 国产日韩欧美在线观看 | 亚洲视频图片 | 99久久99久久精品国产片桃花 | 日韩av成人在线观看 | 久久精品久久精品久久 | 波多野结衣在线一区 | www.在线| 激情深爱五月 | 91精品国产欧美一区二区成人 | 久热精品视频 | 欧美又粗又大aaa片 老熟妇仑乱视频一区二区 亚洲妇女体内精汇编 | 一级特黄毛片 | a级免费网站 | 一区二区三区在线看 | 国产黄页| 91www| 成人宗合网 | 成人宗合 | 日韩久久精品视频 | 91福利区 | 夜夜激情| 日本高清不卡在线观看 | 天天色视频 | 欧美资源在线观看 | 亚洲视频导航 | 卡一卡二卡三 | 丝袜国产视频 | 夜夜操夜夜干 | a级片在线免费观看 | 美女又爽又黄视频毛茸茸 | 欧美成人女星 | 乱子伦一区 | 久久久久人妻精品一区二区三区 | 国产一级在线 | 一区二区三区天堂 | 天天干干干 | 天海翼视频在线观看 | 歪歪视频在线观看 | 日韩在线观看视频一区 | 美女扒开尿口给男人看 | 午夜国产福利在线观看 | 国产一级精品毛片 | 国产欧美视频一区二区三区 | 丁香花五月 | 中国一级特黄真人毛片免费观看 | 日韩av一卡 | 超碰九七| 超碰91人人 | 深夜福利亚洲 | 朋友人妻少妇精品系列 | 亚洲精品网站在线 | 免费成人在线观看 | 99热导航|