linux下用core和gdb查詢出現段錯誤的地方

有些時候我們在一段C代碼的時候,由于對一個非法內存進行了操作,在程序運行的過程中,出現了"段錯誤"。

呵呵,這種問題我想很多人會經常遇到。遇到這種問題是非常無語的,只是提示了"段錯誤",接著什么都沒 有,如果我們一味的去看代碼找太疼苦了,因為我們都相信自己寫的代碼沒問題,現實就是現實。下面介紹一種方法,可以有效的定位出現"段錯誤的地方"。

當我們的程序崩潰時,內核有可能把該程序當前內存映射到core文件里,方便程序員找到程序出現問題的地方。

什么是core dump?
core的意思是內存,dump的意思是扔出來,堆出來。

為什么沒有core文件生成呢?

有時候程序down了,但是core文件卻沒有生成.core文件的生成跟你當前系統的環境設置有關系,可以用下面的語句設置一下便生成core文件了

ulimit ?-c ?unlimited

core 文件生成的位置一般于運行程序的路徑相同,在ubuntu下文件名一般 為core.

什么是core文件
當一個程序奔潰時,在進程當前工作目錄的core文件中復制了該進程的存儲圖像。core文件僅僅是一個內存映像(同時加上調試信息),主要用來調試的。

下面我們來看看,怎樣利用core文件來定位我們出現"段錯誤"的地方.



程序運行結果:



從上面我們可以看出,第一次運行程序出現"段錯誤"并沒有出現core文件,一般linux操作系統默認core文件的大小都是0,需要手動設置一下。
調試core文件
core文件是個二進制文件,需要用相應的工具來分析程序崩潰時的內存映像。

linux下可以用gdb來調試core文件 。



從上面我們可以清楚的看到我們的程序是在那個地方出現了錯誤。

呵呵,有了這種方法,我想以后我們可以不再那么懼怕"段錯誤"了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252908.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252908.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252908.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第一篇-Html標簽中head標簽,body標簽中input系列,textarea和select標簽

第十四周課程(1-12章節) HTML 裸體 CSS 穿華麗衣服 Javascript 動起來 一 HTML (20個標簽) 1.我們的瀏覽器是socket客戶端 2.一套規則,瀏覽器認識的規則 3.開發者: 學習html規則 開發后臺程序&#xff1a…

opencv3.2.0 Cmake 3.8.0 + tdm-gcc-5.1.0-3

實測 tdm-gcc-5.1.0-3 tdm32-1 32位版本無法正確編譯Opencv 3.2.0 會遇到諸多編譯問題 解決辦法 使用tdm-gcc-5.1.0-2 tdm64-1 64位版本轉載于:https://www.cnblogs.com/fundou/p/6710209.html

什么是商品屬性

一、什么是商品屬性: Definition of Product Attributes A product attribute is a characteristic that defines a particular product and will affect a consumers purchase decision. Product attributes can be tangible (or physical in nature) or intangibl…

linux用戶管理(1)----創建用戶(adduser和useradd)和刪除用戶(userdel)

arm linux的系統用戶管理: 1、刪除root用戶:deluser root2、刪除tt用戶:deluser tt3、建立root用戶:adduser root4、修改用戶密碼:登錄相應的用戶后,用passwd來修改密碼4、linux用戶和密碼的管理(ftp&#…

前端性能優化之圖像優化原理

前端性能優化中,圖像的優化是非常重要的一環,為什么要說圖像的優化呢,而不是我們常見的圖片優化?因為這里的圖像包括矢量圖和位圖,我們常說的圖片優化是指位圖的優化。這篇文章轉載至奇舞周刊,大佬總結的非…

Lua開發學習4-普通循環和迭代器循環

說句實話,每當看到Lua代碼,我都感覺是半個SQL代碼,寫起來還是感覺有點恐怖。 while循環: 與C#的while循環類似,沒有什么好說的; --------Lua的while循環 while(condition)dostatementsend For循環 exp1為起…

什么是js的嚴格模式

設立嚴格模式的原因: - 消除Javascript語法的一些不合理、不嚴謹之處,減少一些怪異行為; - 消除代碼運行的一些不安全之處,保證代碼運行的安全; - 提高編譯器效率,增加運行速度; - 為未來新版本的Javascrip…

Linux驅動設計ioctl函數的cmd參數不能為2

Linux驅動程序設計的時候偶然發現的ioctl()函數的cmd參數不能為2,如果為2,ioctl()函數返回-1,網上說就是這樣的,正常,不知道為什么,stack overflow上有一個外國學友的建議: “In general, you want to comp…

代碼解說Android Scroller、VelocityTracker

在編寫自己定義滑動控件時經常會用到Android觸摸機制和Scroller及VelocityTracker。Android Touch系統簡單介紹(二):實例具體解釋onInterceptTouchEvent與onTouchEvent的調用過程對Android觸摸機制須要用到的函數進行了具體的解釋。本文主要介紹兩個重要…

Effective_STL 學習筆記(四十四) 盡量使用成員函數代替同名的算法

有些容器擁有和 STL 算法同名的成員函數。 關聯容器提供了 count、find、lower_bound、upper_bound 和 euqal_range list 提供了 remove、remove_if、unique、merge 和 reverse 大多數時候應該用成員函數代替手寫算法,這樣做的兩個理由: 比起算法&#x…

(NFS移植到arm上)編譯portmap和nfs-utils

為了在播放機上實現NFS服務器的功能,我們已經在uClibc中打開了完整RPC支持,并且在新編譯的內核中打開了NFS服務器支持。此外還有兩個軟件包也是提供NFS服務所必需的:portmap和nfs-utils。portmap為RPC程序提供端口映射服務,nfs-ut…

HTML5上傳預覽

http://cobain-li.iteye.com/blog/2296538轉載于:https://www.cnblogs.com/winyh/p/7850049.html

支付寶支付

1 申請商戶平臺 2 申請開放平臺 3 申請APP支付 4 創建應用 (名稱,logo) 5 生成RSA秘鑰(公鑰,私鑰) 6 在應用中配置公鑰 7 配置其他內容,包括iOS bundle ID。配置安卓包名,和簽名。 獲取appid,公…

HttpRequest Java原生代碼封裝

HttpRequest Java原生代碼封裝 get提交 post提交 name1value1&name2value2 的形式 json形式兩種形式 package com.beisun.mbp.mbp.controller;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrit…

Linux 系統目錄

/ 根目錄 /bin 存放必要的命令 /boot 存放內核以及啟動所需的文件等 /dev 存放設備文件 /etc 存放系統的配置文件 /home 用戶文件的主目錄,用戶數據存放在其主目錄中 /lib 存放必要的運行庫 /mnt 存放臨時的映射文件系統,我們常把軟驅和光驅掛裝在這里的…

linux多線程學習設置線程調度權限

pthread_setschedparam 設置線程的權限 int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param) 參數 1. target_thread是使用pthread_create所獲得的線程ID。   2.線程的調度有三種策略:SCHED_OTHER、…

不可錯過的CMS學習筆記

引子 帶著問題去學習一個東西,才會有目標感,我先把一直以來自己對CMS的一些疑惑羅列了下,希望這篇學習筆記能解決掉這些疑惑,希望也能對你有所幫助。 CMS出現的初衷、背景和目的? CMS的適用場景? CMS的tr…

團隊合作及個人成長

通過前一章的學習,我了解到了關于建模的很多初步的知識,但是這和成為一名軟件工程師是遠遠不夠的,完成一個程序通常都是一個團隊,而這個團隊重要的肯定是需要一些流程,這樣才能讓程序有條不紊的運行著。在這么一個團隊…

相機工作原理

輕輕一按,你的相機就把光子轉換為了比特。于是一張相片就保存到了你的 iPhone 里。 讓我們假設一下你身處室外,環顧四周。三億里之外,太陽無時無刻不在發射光子。它們需要花上 8 分鐘之久才能到達我們舒適的星球。有一些光子撞擊到你周圍的物…

Android Studio使用心得

說實話 開始接觸這個工具 真的認為非常惡心 畢竟大陸被墻 非常多東西用起來不是非常方便 并且Eclipse轉到Android Studio還是一個跨度 廢話不多說 以下 講下我遇到的問題 1. 安裝的時候(Setup Wizard - Download Components) 這個要下載非常長時間 甚至…