青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

馭風萬里無垠

利用LD_PRELOAD發現程序潛在的問題

Solaris上,常常可以用LD_PRELOAD輔助mdb做一些調試、測試工作,可以發現一些其它手段難以發現的問題;最近就遇到一個。

事情源于替換了程序中的某個基礎部分之后,程序運行起來占用的物理內存有了較為顯著的增加,卻難以一下子拿出來個讓人信服的原因。于是自然想到了去看一下程序真正運行的時候,某一部分內存是誰分配的。之前用 pmap -xalsF pid發現【heap】部分有顯著增加,又不是在新加入的那個動態庫里邊。
Solaris上有強大的mdb,輔助不同的模塊可以得出很多有意思的結論,其中libumem.so即可以查看內存的分配的情況,并可以檢測是否有內存泄漏。
啟動的方法很簡便:
export UMEM_DEBUG=default
export UMEM_LOGGING=transaction
LD_PRELOAD=/lib/libumem.so
export LD_PRELOAD
然后在此shell中啟動程序,新打開一個終端,同樣設置好LD_PRELOAD(否則會提示錯誤),
查找正運行的程序的進程號(調試的程序),生成一個core文件:
ps -ef | grep <appname>
gcore 
<pid>
ls core.
<pid>
用mdb打開新生成的core文件,第一行應該提示加載了libumem.so.
接下來,用libumem.so提供的walker和dcmds就可以查詢程序運行以來到產生core文件的那一時間點豐富的內存信息了.
mdb core.pid
>::findleaks
>::umalog
>::umem_log
更多可用的命令,可以用::dmods -l查看。

整個過程非常繁雜,因為應用程序比較大,分配內存的log實在是太多了,但是突然發現運行目錄下邊多了不少core文件,一下子奇怪了,之前可是花費了很多時間在提高代碼質量上,按道理不應該會有core產生了。打開這些core,用pstack,居然發現某個模塊啟動的子進程在調用free的地方abort了,按圖索驥查看代碼,在某個旮旯里邊,幾年沒人動的小角落里,發現分配內存的地方:
char* path1 = getenv("MYENV");
char path2[] = "bin/logDir/log.xxx"
char* path = malloc(sizeof(path1) + sizeof(path2));
strcpy(path, path1);
strcat(path, path2);
.

free(path);
exit(
0);

.
原來最初寫這塊純C代碼的人打了馬虎眼,分配的內存有問題,導致free的時候出問題,但正常情況下,這里的exit之后,進程也就退出了,居然沒有core文件出來,導致這個Bug居然被隱藏了數年。

libumem和LD_PRELOAD居然把它挖了出來,馬上修改之。

所謂“禍患常積于忽微”,最不起眼的地方,往往會衍生一些麻煩,不時咬你一口。
討厭的"legacy code without evolution/refactoring/test......",每個負責任的職業程序員都應該去深思

【注】Linux上似乎也有libumem.so,但是卻沒有pstack/mdb這些好用的工具,只有valgrind/gdb了;solaris上不但有mdb/dtrace,還有dbx,雖然gdb也是可用的

posted on 2009-06-30 22:05 skyscribe 閱讀(1581) 評論(0)  編輯 收藏 引用 所屬分類: Linux

<2009年6月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導航

統計

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久人人97超碰国产公开结果 | 亚洲欧美中文字幕| 亚洲黄色一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整 | 久久男女视频| 久久久久网址| 欧美韩日一区二区| 欧美日韩在线一区| 国产伦精品一区二区三| 黄色成人小视频| 亚洲免费观看| 欧美一级艳片视频免费观看| 久久久www成人免费精品| 欧美 日韩 国产一区二区在线视频| 亚洲第一视频网站| 一本久久a久久精品亚洲| 午夜精品久久久久影视 | 久久久久久精| 亚洲精品视频在线看| 亚洲欧美国产不卡| 欧美mv日韩mv国产网站| 国产精品麻豆va在线播放| 在线成人激情黄色| 亚洲综合成人婷婷小说| 欧美a级在线| 亚洲男同1069视频| 欧美成人精品h版在线观看| 国产精品九九久久久久久久| 在线成人激情黄色| 久久成人免费网| 亚洲美女色禁图| 久久综合九色九九| 国产啪精品视频| 日韩一区二区精品| 美女图片一区二区| 欧美亚洲综合在线| 国产精品v片在线观看不卡| 亚洲国产美女久久久久| 久久久美女艺术照精彩视频福利播放| 亚洲三级影院| 麻豆精品传媒视频| 精品成人在线| 久久九九国产精品| 亚洲欧美日韩精品久久奇米色影视 | 欧美精品 国产精品| 国产日韩一区二区三区在线| 亚洲视频中文字幕| 亚洲激情小视频| 快播亚洲色图| 在线播放日韩欧美| 久久一区视频| 久久国产精品久久久久久| 国产精品美女久久久久久2018| aⅴ色国产欧美| 亚洲日本中文字幕免费在线不卡| 久久久久国产免费免费| 国模精品一区二区三区色天香| 欧美一级精品大片| 亚洲专区欧美专区| 国产欧美 在线欧美| 欧美专区亚洲专区| 欧美影院在线播放| 一区二区在线视频播放| 美女图片一区二区| 麻豆精品91| 一本色道久久综合狠狠躁的推荐| 欧美国内亚洲| 欧美日韩国产区一| 亚洲欧美在线免费观看| 亚洲欧美美女| 亚洲成人原创| 亚洲国产91精品在线观看| 欧美成人中文字幕在线| 亚洲乱码国产乱码精品精98午夜| 亚洲欧洲另类| 国产精品久久久久高潮| 久久久国产一区二区| 久久精品亚洲一区二区| 亚洲国产合集| 一本色道久久| 国产日韩欧美精品综合| 鲁大师影院一区二区三区| 欧美大胆a视频| 亚洲欧美日韩国产综合精品二区 | 免费观看亚洲视频大全| 99精品99久久久久久宅男| 亚洲视屏一区| 在线观看欧美精品| 日韩图片一区| 国产亚洲一区二区三区在线播放| 免费久久精品视频| 欧美日韩视频在线一区二区| 欧美在线观看一区二区| 麻豆成人av| 欧美怡红院视频一区二区三区| 久久精品五月| 亚洲一区在线播放| 久久亚洲色图| 欧美一区午夜视频在线观看| 欧美ed2k| 在线日韩av片| 中文在线不卡视频| 亚洲欧洲精品一区二区三区| 亚洲一区在线免费| 亚洲伦理在线观看| 性18欧美另类| 亚洲视频观看| 老司机成人在线视频| 午夜精品久久久久久久久久久久久 | 亚洲欧美日韩在线| 欧美成人伊人久久综合网| 久久精品一区二区三区不卡牛牛| 欧美精品一区二| 免费成人在线视频网站| 国产女主播一区二区| 99热免费精品在线观看| 亚洲黄色成人网| 久久精视频免费在线久久完整在线看| 亚洲一区高清| 欧美日韩免费观看一区=区三区| 可以看av的网站久久看| 国产精品尤物| 亚洲综合成人在线| 午夜免费日韩视频| 国产精品爱啪在线线免费观看| 亚洲欧洲精品成人久久奇米网| 亚洲成色777777在线观看影院| 香蕉成人久久| 久久久精品一品道一区| 国产亚洲a∨片在线观看| 亚洲综合好骚| 亚洲欧美综合另类中字| 国产精品美女久久久浪潮软件| 亚洲精品在线视频观看| a91a精品视频在线观看| 欧美日韩国产精品自在自线| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲国产精品免费| 欧美va亚洲va日韩∨a综合色| 老色鬼精品视频在线观看播放| 国产一区二区三区黄视频| 欧美在线免费观看视频| 麻豆成人精品| 亚洲精品视频免费观看| 欧美日韩免费观看一区二区三区| 日韩系列在线| 欧美亚洲色图校园春色| 国产亚洲精品一区二555| 久久久精品一品道一区| 欧美成人首页| 亚洲视频综合| 国产女主播视频一区二区| 欧美在线观看www| 欧美成人一区在线| 一区二区激情小说| 国产免费一区二区三区香蕉精| 欧美一级精品大片| 亚洲国产成人精品久久久国产成人一区| 亚洲人成在线观看一区二区 | 欧美诱惑福利视频| 欧美成人在线影院| 中文网丁香综合网| 国产欧美日韩在线播放| 久久色在线观看| 日韩亚洲欧美在线观看| 久久精品2019中文字幕| 久久综合国产精品| 一区二区高清视频| 久久视频在线看| 日韩午夜电影在线观看| 国产精品永久免费| 欧美成人资源网| 亚洲欧美在线另类| 欧美国产在线电影| 欧美在线短视频| 日韩一级欧洲| 黄色综合网站| 国产精品豆花视频| 欧美大片在线看| 欧美在线视频a| 一区二区动漫| 亚洲国产精品专区久久| 久久精品系列| 亚洲综合精品| 99精品免费| 亚洲韩国一区二区三区| 国产一区二区三区久久| 欧美日韩在线视频观看| 老牛嫩草一区二区三区日本| 亚洲欧美欧美一区二区三区| 亚洲国产日韩欧美在线图片| 久久久精品动漫| 亚洲欧美伊人| 亚洲一区二区不卡免费| 亚洲人成啪啪网站| 在线成人h网| 激情成人亚洲| 韩国v欧美v日本v亚洲v| 国产女人水真多18毛片18精品视频| 欧美日韩日本视频|