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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux addr2line

發布時間:2025/3/15 linux 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux addr2line 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


在Linux下寫C/C++程序的程序員,時常與Core?Dump相見。在內存越界訪問,收到不能處理的信號,除零等錯誤出現時,我們精心或不精心寫就的程序就直接一命嗚呼了,Core?Dump是Linux仁慈地留下的程序的尸體,幫助程序員們解決了一個又一個問題。

有時配置不給力,Linux直接毀尸滅跡,沒有了Core文件;又有時,剛好磁盤空間不足,Core文件寫不下了。沒有Core文件的時候,如何知道程序在什么地方出錯了呢?addr2line就在這時派上用場。

這是一個示例程序,func函數返回參數a除以參數b的結果。這里使用0作為除數,結果就是程序因為除以0導致錯誤,直接中斷了。


#include?<stdio.h>int?func(int?a,?int?b) {return?a?/?b; }int?main() {int?x?=?10;int?y?=?0;printf("%d?/?%d?=?%d\n",?x,?y,?func(x,?y));return?0; }

?

使用

$?gcc?-o?test1?-g?test1.c

編譯程序,test1.c是程序文件名。執行程序,結果程序異常中斷。查看系統dmesg信息,發現系統日志的錯誤信息:

[54106.016179]?test1[8352]?trap?divide?error?ip:400506?sp:7fff2add87e0?error:0?in?test1[400000+1000]

這條信息里的ip字段后面的數字就是test1程序出錯時所程序執行的位置。使用addr2line就可以將400506轉換成出錯程序的位置:

$?addr2line?-e?test1?400506 /home/hanfoo/code/test/addr2line/test1.c:5

這里的test1.c:5指的就是test1.c的第5行

return?a?/?b;??

也正是這里出現的錯誤。addr2line幫助我們解決了問題。

?

addr2line如何找到的這一行呢。在可執行程序中都包含有調試信息,其中很重要的一份數據就是程序源程序的行號和編譯后的機器代碼之間的對應關系Line?Number?Table。DWARF格式的Line? Number?Table是一種高度壓縮的數據,存儲的是表格前后兩行的差值,在解析調試信息時,需要按照規則在內存里重建Line?Number? Table才能使用。

Line?Number?Table存儲在可執行程序的.debug_line域,使用命令

$?readelf?-w?test1

可以輸出DWARF的調試信息,其中有兩行

Special?opcode?146:?advance?Address?by?10?to?0x4004fe?and?Line?by?1?to?5??

Special?opcode?160:?advance?Address?by?11?to?0x400509?and?Line?by?1?to?6??


這里說明機器二進制編碼的0x4004fe位置開始,對應于源碼中的第5行,0x400509開始就對應與源碼的第6行了,所以400506這個地址對應的是源碼第5行位置。

?

addr2line通過分析調試信息中的Line?Number?Table自動就能把源碼中的出錯位置找出來,再也不怕Linux毀尸滅跡了。

總結

以上是生活随笔為你收集整理的linux addr2line的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国内精品一区二区三区 | 亚洲天堂avav| 午夜爽爽视频 | 成人性生交大片免费 | 五月色婷 | 国产情侣自拍一区 | 欧美国产一级片 | 狠狠综合 | 国产精品黄在线观看 | 性涩av| 熟女熟妇伦久久影院毛片一区二区 | 午夜一区二区视频 | 香蕉网址 | 天天干天天谢 | 亚洲九色 | 香蕉婷婷 | 亚洲国产一区二区在线观看 | 久久视频精品 | h无码动漫在线观看 | 久久婷婷热 | 日韩黄色网页 | 精品视频一二三 | 久久香蕉综合 | 波多野结衣电车 | 天天干天 | 97免费超碰 | 九九色在线| 在线免费观看视频你懂的 | 在线视频 一区二区 | 特级毛片爽www免费版 | 国语对白做受xxxxx在线中国 | 国产精品第一页在线观看 | 久久综合婷婷 | 欧美精品一区二区性色a+v | 国产精品1000 | 成年人视频在线看 | 亚洲视频手机在线观看 | 精品国产一区三区 | 91成人精品国产刺激国语对白 | 91一区视频 | 午夜精品网站 | 在线天堂www在线国语对白 | 青青草成人免费视频 | 超碰成人在线免费观看 | 激情小说中文字幕 | 少妇搡bbbb搡bbbb | 亚洲欧美国产精品专区久久 | 国产良妇出轨视频在线观看 | 午夜做爰xxxⅹ性高湖视频美国 | 三度诱惑免费版电影在线观看 | 长篇乱肉合集乱500小说日本 | 国产精品对白 | 免费不卡av在线 | 国产日产精品一区 | 91老女人| 成人一级影片 | 精品无码av一区二区三区 | 国产中文字幕91 | 黄色网址在线免费看 | 成年人网站黄色 | 欧美黄色视屏 | 制服丝袜av电影 | 九月婷婷丁香 | 精品乱码一区二区三区 | 欧美精品一区三区 | 伊在线久久丫 | 久草视频在线免费 | 日本丰满少妇做爰爽爽 | 亚洲免费观看高清完整版在线 | 国产女主播在线一区二区 | 91在线精品李宗瑞 | 日日躁夜夜躁 | 久久九九免费视频 | 日韩一二三四 | 亚洲精品二区三区 | 午夜久久电影 | 一女被多男玩喷潮视频 | 亚洲AV无码成人精品国产一区 | 成人av一级| 国产98色在线 | 日韩 | 亚洲精品第一 | 91精品观看 | 99热久久这里只有精品 | 无码国产精品96久久久久 | 小黄网站在线观看 | 国产小毛片 | 欧美激情在线观看一区 | 毛片的网站 | 成年人免费黄色片 | 久草精品视频 | 少妇在线观看 | 精品人妻伦一二三区久久 | 国产精品国产三级国产专区51 | 国产精品老女人 | 国产精品久久久久久免费观看 | 国产一区二区三区视频在线观看 | 五月婷婷在线视频 | 欧美操操操| 久久波多野结衣 |