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

馭風萬里無垠

利用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 閱讀(1586) 評論(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>
            亚洲第一精品电影| 国产一区二区三区自拍| 亚洲精品在线视频| 亚洲韩国日本中文字幕| 欧美成人a视频| 亚洲第一黄色| 一本一本a久久| 亚洲综合色丁香婷婷六月图片| 亚洲综合另类| 久久在线播放| 欧美日韩黄色一区二区| 国产精品网曝门| 一区在线免费| 一区二区三区四区五区在线 | 亚洲午夜视频在线| 午夜一区二区三区在线观看| 久久久精品国产免费观看同学| 久久综合网络一区二区| 欧美日韩一区二区免费在线观看| 国产偷久久久精品专区| 亚洲精品日韩久久| 久久久一区二区| 亚洲精品美女免费| 久久国产精品久久久久久久久久| 欧美经典一区二区三区| 国内精品视频在线播放| 在线视频亚洲一区| 欧美成年人网| 性欧美xxxx视频在线观看| 暖暖成人免费视频| 国产在线精品自拍| 亚洲欧美视频一区| 欧美黑人在线播放| 久久精品一区二区| 欧美日本一道本| 亚洲一级高清| 欧美肥婆bbw| 999在线观看精品免费不卡网站| 亚洲婷婷综合色高清在线| 久久久久成人精品| 国产精品―色哟哟| 一区二区高清| 亚洲高清在线视频| 久久久精品日韩| 国产精品一二三视频| 影音先锋久久精品| 久久精品在线播放| 亚洲免费视频一区二区| 欧美午夜欧美| 亚洲图片欧美一区| 日韩亚洲欧美一区| 欧美另类视频| 一区二区三区高清不卡| 亚洲国产精品久久久久| 久久性天堂网| 在线日韩av片| 欧美国产成人在线| 另类激情亚洲| 亚洲激情六月丁香| 亚洲国产第一页| 欧美电影在线观看完整版| 亚洲国产精品国自产拍av秋霞| 久久在线免费观看视频| 久久久精品一区| 在线欧美福利| 亚洲国产精品一区| 欧美—级a级欧美特级ar全黄| 亚洲电影免费观看高清完整版在线观看 | 亚洲福利免费| 欧美+日本+国产+在线a∨观看| 狠狠色香婷婷久久亚洲精品| 久久久久久久999| 久久久免费观看视频| 悠悠资源网亚洲青| 欧美国产日韩一区二区在线观看| 免费成人高清| 亚洲桃花岛网站| 亚洲欧美中日韩| 在线播放日韩专区| 亚洲黄一区二区三区| 欧美日韩一区二区国产| 欧美亚洲综合网| 久久综合狠狠综合久久激情| 99在线观看免费视频精品观看| 亚洲一区二区在线观看视频| 韩国在线一区| 亚洲免费高清| 国产主播一区二区三区四区| 亚洲国产一区二区三区高清| 国产精品久久久久一区二区三区共| 久久精品国产欧美亚洲人人爽| 久久综合图片| 欧美一区亚洲一区| 欧美激情第六页| 久久九九国产精品| 欧美—级高清免费播放| 久久久久久婷| 欧美网站在线| 亚洲第一中文字幕| 国产日韩欧美另类| 日韩午夜中文字幕| 亚洲国内高清视频| 欧美亚洲视频| 亚洲综合丁香| 欧美精品一区在线播放| 久久久一区二区| 国产精品视频精品| 亚洲片在线资源| 在线国产精品播放| 亚洲综合精品自拍| 在线视频你懂得一区| 麻豆精品国产91久久久久久| 欧美主播一区二区三区美女 久久精品人| 蜜桃av久久久亚洲精品| 久久精品人人做人人爽电影蜜月| 欧美日韩精品二区第二页| 欧美成人黑人xx视频免费观看| 国产精品欧美在线| 夜夜嗨av一区二区三区网站四季av | 亚洲黄色成人| 欧美中文字幕视频| 香蕉久久一区二区不卡无毒影院 | 久久一区中文字幕| 国产精品久久久久久久第一福利 | 久久精品国产久精国产一老狼| 欧美日韩成人在线视频| 亚洲国产va精品久久久不卡综合| 在线免费观看视频一区| 久热精品视频在线观看| 免费亚洲电影在线观看| 在线成人免费视频| 麻豆成人在线播放| 亚洲精品1区2区| 一区二区三区视频在线| 欧美视频精品在线| 亚洲视频在线观看| 亚洲在线观看免费| 国产精品无码专区在线观看| 亚洲综合首页| 久久久久久一区| 极品裸体白嫩激情啪啪国产精品 | 国产精品地址| 中文av字幕一区| 欧美在线视频在线播放完整版免费观看 | 欧美剧在线免费观看网站| 亚洲国产日韩美| 亚洲深夜福利网站| 国产精品福利网站| 小黄鸭视频精品导航| 久久久亚洲精品一区二区三区| 精品动漫3d一区二区三区免费版 | 中国av一区| 国产精品福利av| 久久成人精品电影| 欧美激情麻豆| 亚洲免费视频在线观看| 国产一区二区三区不卡在线观看 | 欧美丰满高潮xxxx喷水动漫| 亚洲日本免费| 欧美在线一二三四区| 在线观看一区欧美| 欧美伦理影院| 欧美一区二区三区在线| 亚洲成人在线免费| 久久人人看视频| 亚洲三级电影全部在线观看高清| 亚洲性图久久| 一区二区三区无毛| 欧美精品首页| 欧美一级成年大片在线观看| 亚洲第一网站| 久久精品一区二区三区四区 | 亚洲精品日韩激情在线电影| 国产精品国产自产拍高清av王其| 欧美中文字幕在线观看| 日韩亚洲欧美高清| 欧美超级免费视 在线| 亚洲欧美日韩一区二区在线 | 亚洲一区二区精品在线| 欧美成人自拍视频| 欧美一区二区三区精品电影| 91久久一区二区| 国产一区二区三区av电影 | 国产精品主播| 欧美精品播放| 久久久成人网| 午夜在线电影亚洲一区| 一区二区三区国产精华| 欧美国产精品v| 免费成人在线视频网站| 欧美中文在线观看| 亚洲女人天堂成人av在线| 亚洲国产专区| 亚洲国产另类久久久精品极度| 国产一区二区三区在线免费观看 | 亚洲午夜电影| 亚洲精品日韩在线| 亚洲国产合集| 欧美激情片在线观看| 老司机67194精品线观看|