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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用 core dump 查找程序遇到严重问题退出的原因

發布時間:2025/3/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用 core dump 查找程序遇到严重问题退出的原因 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
不使用 ulimit 命令,在程序中使用 API 開啟 core dump。注意:只對當前程序有效。
  • #include <sys/resource.h>
  • int enableCoreDump(void)
  • {
  • struct rlimit r_old, r_new;
  • getrlimit(RLIMIT_CORE, &r_old);
  • printf("r_old.rlim_cur : %d, r_old.rlim_max : %d\n", r_old.rlim_cur, r_old.rlim_max);
  • r_new.rlim_cur = RLIM_INFINITY;
  • r_new.rlim_max = RLIM_INFINITY;
  • if (setrlimit(RLIMIT_CORE, &r_new) != 0) {
  • getrlimit(RLIMIT_CORE, &r_old);
  • printf("r_old.rlim_cur : %d, r_old.rlim_max : %d\n", r_old.rlim_cur, r_old.rlim_max);
  • }
  • r_new.rlim_cur = r_old.rlim_max;
  • r_new.rlim_max = r_old.rlim_max;
  • setrlimit(RLIMIT_CORE, &r_new);
  • getrlimit(RLIMIT_CORE, &r_old);
  • printf("r_old.rlim_cur : %d, r_old.rlim_max : %d\n", r_old.rlim_cur, r_old.rlim_max);
  • return 0;
  • }
  • 編譯程序時注意使用 -g 標志,加入調試信息,否則調試時只能看到函數地址,看不到函數名。程序遇到嚴重錯誤退出后,會在啟動程序的目錄下生成 core 文件。將 core 文件復制到主機,用交叉編譯器提供的gdb 打開。arm-linux-gdb ./a.out core輸入 where,即可看到函數在哪退出的,以及函數調用棧。下面是輸入 where 后,輸出的函數調用棧:
  • Program terminated with signal SIGSEGV, Segmentation fault.
  • #0 0x00008c48 in cJSON_GetArrayItem (array=<optimized out>, item=171880)
  • at cJSON.c:662
  • 662 cJSON *cJSON_GetArrayItem(cJSON *array,int item) {cJSON *c=array->child; while (c && item>0) item--,c=c->next; return c;}
  • (gdb) where
  • #0 0x00008c48 in cJSON_GetArrayItem (array=<optimized out>, item=171880)
  • at cJSON.c:662
  • #1 0x0000b8dc in addItem (cacheArray=0xe1a03000, statusArray=0x29f68,
  • mode=CACHE_MODE_SYNC) at CacheManager.c:162
  • #2 0x0000b8dc in addItem (cacheArray=0xe1a03000, statusArray=0x29f68,
  • mode=CACHE_MODE_SYNC) at CacheManager.c:162
  • #3 0x00000000 in ?? ()
  • Backtrace stopped: frame did not save the PC



  • 來自為知筆記(Wiz)

    轉載于:https://www.cnblogs.com/JonnyLulu/p/4485842.html

    總結

    以上是生活随笔為你收集整理的使用 core dump 查找程序遇到严重问题退出的原因的全部內容,希望文章能夠幫你解決所遇到的問題。

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