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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下gdb使用core文件调试程序,解决“段错误核心已转储“的问题

發布時間:2025/3/20 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下gdb使用core文件调试程序,解决“段错误核心已转储“的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、core文件介紹以及用途:

1、core文件是什么?

core文件包含了程序運行時的內存狀態、寄存器狀態、堆棧指針、內存管理信息以及各個函數使用堆棧信息等等;
當程序運行過程中出現段錯誤(Segmentation Fault),程序將停止運行,由操作系統把程序當前的內存狀況存儲在一個 core 文件中,即核心轉儲文件(Coredump File),core 文件是程序運行狀態的內存映象。

2、使用場景,段錯誤

使用程序的時候,總會遇到

“段錯誤(核心已轉儲)”

這樣的錯誤提示信息,通過gdb與core文件便可以查看程序錯誤的地方。

3、造成段錯誤的原因

主要以下幾個方面

內存訪問越界
多線程使用了線程不安全的函數
非法指針
堆棧溢出
多線程讀寫的程序沒有加鎖保護

二、core文件調試舉例

1、舉例一個用了空指針的程序

這里我們故意使用一個空指針,然后造成段錯誤,去演示如何使用core文件調試程序

#include <iostream>int main() { *(char *) 0 = 0;//使用一個空指針,會報段錯誤int num;std::cout<<"please enter a number:";std::cin>>num;for (int i = 0; i < 10; i ++){num += i;std::cout<<"number + i = "<<num <<std::endl;}return 0; }

2、設置core文件大小

因為默認的core文件大小是0 ;也就是默認不保存這個文件;所以需要我們設置一下;
使用下面的命令去查看以及設置:

ulimit -c //查看core文件大小默認是0;//此時不生成core文件 ulimit -c unlimited //不限制生成core文件的大小

但是如果你是普通用戶,這樣的操作一般都會報錯誤:“不允許的操作”;

bash: ulimit:core file size:無法修改limit值:不允許的操作

遇到這樣的問題應該怎么解決呢?

1、用root用戶去使用上述:ulimit -c unlimited命令
2、返回普通用戶再使用一次:ulimit -c unlimited

PS:像使用命令 "sudo vi /etc/security/limits.conf "的這個方法,自己也有嘗試過,但是好像沒有效果,也寫出來供大家參考參考吧!

sudo vi /etc/security/limits.conf"

找到下圖的soft core,

把 0 改為 unlimited;

3、設置core文件的保存位置以及文件名字格式信息

使用 echo 更巧妙一點:

echo "/home/kylin/Core_P/core-%e" > /proc/sys/kernel/core_pattern

修改文件的格式信息,有利于core文件的保存和查看,名字的格式可以參考下面的:

%p - 添加pid(進程id) %u - 添加當前uid(用戶id) %g - 添加當前gid(用戶組id) %s - 添加導致產生core的信號 %t - 添加core文件生成時的unix時間 %h - 添加主機名 %e - 添加導致產生core的命令名

PS:另外使用的方法,算是踩的一個坑。
就是通過編輯文件去設置保存位置與信息

sudo vim /proc/sys/kernel/core_pattern


結果就是一直有:

"警告:此文件自讀入后已發生改動!!!"
"core pattern" E667:同步失敗的信息

所以使用 echo的方法,可以解決上面的問題,而且是有效的!

4、使用core文件查看錯誤

由于程序里面故意寫了一個空指針,所以運行的時候肯定會有"段錯誤(核心已轉儲)";
但是不同的是,這個時候的core文件的存在的,而且保存在上面剛剛設置的地方

使用 : ”gdb + [exec file] + [core file] “調試core文件
結果能夠顯示出錯的函數、出錯的行數,并顯示該行代碼

總結

以上是生活随笔為你收集整理的linux下gdb使用core文件调试程序,解决“段错误核心已转储“的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 99精品视频一区二区三区 | 国产精品一区二区亚洲 | 天天干天天玩 | 国产一区二区黑人欧美xxxx | h视频在线免费看 | 黄色一级在线播放 | 国产高清一区二区三区四区 | 高清不卡视频 | 四虎精品欧美一区二区免费 | 国产黄a三级三级三级 | 俺去操 | 国产精品熟女一区二区不卡 | 亚洲精品国产无码 | 无码av免费精品一区二区三区 | 欧美性生活一区二区 | 亚洲国产伊人 | xxx一区| 国产三级视频网站 | 欧美一区亚洲二区 | 稀缺小u女呦精品呦 | www.日批 | 制服丝袜中文字幕在线 | 亚洲图片自拍偷拍区 | 日韩视频h | 国产三级av在线播放 | 亚洲精品乱码久久久久99 | 性感美女一区二区三区 | 日韩欧美一区二区三区久久婷婷 | 熟妇一区二区三区 | 在线观看中文 | 亚洲五月六月 | 四川少妇xxx奶大xxx | 黑人玩弄人妻一区二 | 亚洲天堂一区在线 | 在线亚洲网站 | 爆操av | 久久99国产精品久久99果冻传媒 | 亚洲一区二区三区在线 | 国产二区三区 | 天天草视频 | 日韩一区二区三区免费 | 久操视频在线观看 | 天天操夜操 | 毛片高清 | 国产乱码精品一区二区三区中文 | 欧美大片91 | 四虎成人永久免费视频 | 91caob| 国产三级国产精品国产专区50 | 日韩激情欧美 | 成人毛片视频在线观看 | 国产人成免费视频 | 69av视频在线 | 欧美色图13p| 在线国产区 | 亚洲性激情 | 一区二区三区四区免费观看 | caoporm超碰 | www.五月天婷婷.com | 久久久久无码国产精品 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 黄色的一级片 | 国产精品色网 | 国产奶水涨喷在线播放 | 亚洲影院av| 91手机在线视频 | 国产亚洲综合精品 | 中文字幕一区二区三区门四区五区 | 国产在线a视频 | 小宝贝真紧h军人h | 国产a级一级片 | 日本欧美不卡 | 专干中国老太婆hd | 天天摸天天添 | 少妇人妻精品一区二区三区 | 麻豆黄色网址 | 日本做爰全过程免费看 | 婷婷影视 | 日本xxxx高潮少妇 | 亚洲乱码国产乱码精品天美传媒 | 久久99这里只有精品 | 黄色av毛片 | 真实的中国女人做爰 | 中文字幕日韩经典 | 男生和女生一起搞鸡 | 性农村xxxxx小树林 | 日本欧美一级 | 精品国产视频在线 | 日本女优在线看 | 亚洲精品成a人在线观看 | 粉嫩aⅴ一区二区三区 | 日韩免费在线看 | 亚洲国产毛片aaaaa无费看 | 国产做受高潮动漫 | 亚洲a人 | 成人在线观看免费 | 黄色一级欧美 | 高清国产午夜精品久久久久久 | 欧美日韩久久精品 |