linux程式除錯命令addr2line之入門簡介(本文先不聊gdb除錯)
addr2line有什麼作用呢? 可別小瞧它, 它可以定位到程式碼出錯的位置。 下面, 我們來看看這個簡單的程式碼:
#include <stdio.h>
int main()
{
int *p = NULL;
*p = 0;
printf("bad\n");
return 0;
}
這個程式很小, 我們可以一眼就看出程式在執行期出錯。 但是, 如果是大程式, 在執行期出錯, 我們該如何定位呢? 那就必須依賴於工具, 而不是你我的肉眼。
我們以上述小程式為例, 進行如下操作:
[[email protected] learn_c]$ gcc -o taogeSeg -g taogeSeg.c
[[email protected] learn_c]$ ./taogeSeg
Segmentation fault (core dumped)
[[email protected] learn_c]$ dmesg | grep taogeSeg
taogeSeg[4941]: segfault at 0 ip 080483c9 sp bfb92410 error 6 in taogeSeg[8048000+1000]
[[email protected] learn_c]$ addr2line -e taogeSeg 080483c9
/home/taoge/Desktop/learn_c/taogeSeg.c:6
[ [email protected] learn_c]$ cat -n taogeSeg.c
1 #include <stdio.h>
2
3 int main()
4 {
5 int *p = NULL;
6 *p = 0;
7
8 printf("bad\n");
9 return 0;
10 }
[[email protected] learn_c]$
我來解釋一下:
相關推薦
linux程式除錯命令addr2line之入門簡介(本文先不聊gdb除錯)
addr2line有什麼作用呢? 可別小瞧它, 它可以定位到程式碼出錯的位置。 下面, 我們來看看這個簡單的程式碼: #include <stdio.h> int main() { int *p = NULL;
JAVA8新特性之入門簡介
一:JAVA8新特性簡介 1:速度更快 首先速度很快,它是體現在很多的方面,比如說它對底層的資料結構做了一定的更新的改動,對於垃圾回收機制 也就是記憶體結構也做了改變。改變的例子如下:
c# 之入門簡介1
goto 語句 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _5
十年風雨,一個普通程式設計師的成長之路(八)不想做技術總監的專案經理,不是好程式設計師
目錄 十年風雨,一個普通程式設計師的成長之路(八)不想做技術總監的專案經理,不是好程式設計師 01 技術總監寫不寫程式碼? 02 面試的坎坷與杯具 03 新的開始 & 舊的結束
Mahout學習之Mahout簡介、安裝、配置、入門程式測試
一、Mahout簡介 查了Mahout的中文意思——馭象的人,再看看Mahout的logo,好吧,想和小黃象happy地玩耍,得順便陪陪這位馭象人耍耍了... 附logo: (就是他,騎在象頭上的那個Mahout) 步入正文啦: Mahout 是一個很強大
linux之configfs簡介和程式設計入門
一、什麼是configfs 是一種基於ram的檔案系統 二、configfs有什麼用處 在使用者空間配置核心物件 三、configfs VS ioctl configfs可直接察看,通過使用者態目錄檔案訪問介面
gdb除錯core dump入門實踐(順便複習一下之前介紹過的addr2line命令除錯)
除錯技能是軟體開發的必備技能, 不會除錯, 就抓不到bug, 就很痛苦。 本文我們來一起聊聊gdb除錯core Part 1: 在前面的博文中, 我們聊過重要的addr2line除錯, 現在再來一起看看, 就當是複習吧。
從 0 開始學習 Linux 系列之「08.15 個 gdb 除錯基礎命令」
gdb 簡介 gdb 是 UNIX 及 UNIX-like 下的除錯工具,在 Linux 下一般都直接在命令列中用 gdb 來除錯程式,相比 Windows 上的整合開發環境 IDE 提供的圖形介面除錯,一開始使用 gdb 除錯可能會讓你感到生無可戀,但是隻要
Linux下常用命令之sed學習總結
linux sed sed命令 正則表達式 sed總結 Sed功能說明:Sed是linux下一個強大的文本文件處理工具,通過對文件增加、刪除、查找、查詢操作,配合正則表達式以實現工作中的各種需求。同時也是一名運維人員必須掌握的核心技能。---------------------------
每天一個linux命令8之grep高級篇
表達式 大寫 world exp 大寫字母 重復數 tools href 反向 1語法 grep -[acinv] ‘搜索內容串‘ filename-a 以文本文件方式搜索-c 計算找到的符合行的次數-i 忽略大小寫-n 順便輸出行號-v 反向選擇,即找 沒有搜索
Linux運維學習筆記之二:常用命令2
linux 運維 筆記71、passwd:修改用戶密碼語法passwd [參數]username選項-k --keep-tokens :保留即將過期的用戶在期滿後仍能使用-l --lock :鎖定用戶無權更改其密碼,只能root才能操作-u --unlock :解除鎖定-S --status :查看用戶狀
Linux命令學習之—每天發一個命令—mkdir
linux 命令 mkdirLinux命令學習之—每天發一個命令—mkdirmkdir 命令用來創建指定的名稱的目錄,要求創建目錄的用戶在當前目錄中具有寫權限,並且指定的目錄名不能是當前目錄中已有的目錄。1.命令格式:mkdir [選項] 目錄...2.命令功能:通過 mkdir 命令可以實現在指定位置創建以
linux文件查找之find命令
linux findfind在windows中,我們想查找文件時,只需要在查找中輸入您想要查找的東西,對於linux來說,沒有那麽方便的圖像查找,但是使用find命令,將會是最好的選擇,find具有強大的查找命令方式,之前,聽一個學長說他面試jd的時候,問道的第一個問題就是你怎樣查找系統中大於10M 的文件,
kali linux 信息搜集之常用的幾個軟件常用命令
安全 kali 信息搜集nmapnmap + ip 地址 掃描主機開放端口nmap -p 1-x + ip 地址 掃描特定主機端口nmap -v -A -sV +ip地址 詳細掃描主機nmap - p 端口 +ip 地址 192.168.1.* 集群內特定ipnmap -O 系統測試nmap -sV +ip
關於linux的進階命令用法之來自noob的小結(1)
linux命令 寫的很雜,先這樣,下午再來細細排版與貼圖umask 查詢當前shell的mask值umask xxx 可以設置當前目錄的mask值vim .bashrc 可以編輯當前用戶shell的mask值並且永久保存,source 後生效-S 可以用rwx顯示出當前的去掉的
linux運維、架構之路-shell編程入門
if語句 blog exp chkconfig 問題 架構之路 判斷目錄 cal 常用 一、shell編程入門必備基礎 1、vim編輯器的命令,vimrc設置 2、150個linux基礎命令 3、linux中基礎的系統服務crond,ssh網絡服務,nfs,rsync,in
Linux命令大全之幫助命令及壓縮命令
.gz inf help unzip tar tar.gz 壓縮包 解壓 bsp man(manual):幫助命令 help用於解釋shell內部命令 格式:help shell內部命令 ls 命令 --help man 命令
Linux系統命令三劍客之Grep
linux 命令 grep命令名稱:grep命令作用: 文本查找或搜索工具詳細說明: 同樣可以配合正則表達式來搜索文本,並將匹配的行打印輸出 也可用於過濾與搜索特定字符串,使用十分靈活常用參數:-a #不要忽略二進制數據-A #除了顯示符合範本樣式的那一行之外,並顯示該行之後的內容-b
Linux系統命令三劍客之 awk
linux 命令 awk命令名稱:awk作用: 對文本和數據進行處理詳細說明: awk 是一種編程語言,用於在linux/unix下對文本和數據進行處理。 數據可以來自標準輸入(stdin)、一個或多個文件,或其它命令的輸出。 它在命令行中使用,但更多是作為腳本來使用。awk有很多內建的
Linux下的命令之clear和reset
linux clear reset 清除屏幕 1) clear : 刷新屏幕 保留歷史命令記錄 說明:此命令本質上是讓終端向後翻一頁 當向上滾動鼠標時,還是可以看到之前的命令操作記錄 2) reset : 重新初始化屏幕,清除歷史命令操作記錄本文出自 “梵高說我腦子有病” 博客,謝絕