[發(fā)明專(zhuān)利]一種用于vxWorks操作系統(tǒng)檢查內(nèi)存泄漏的方法有效
| 申請(qǐng)?zhí)枺?/td> | 200810244677.4 | 申請(qǐng)日: | 2008-12-11 |
| 公開(kāi)(公告)號(hào): | CN101587455A | 公開(kāi)(公告)日: | 2009-11-25 |
| 發(fā)明(設(shè)計(jì))人: | 李忠安;胡紹謙;王言國(guó) | 申請(qǐng)(專(zhuān)利權(quán))人: | 南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術(shù)有限公司 |
| 主分類(lèi)號(hào): | G06F11/36 | 分類(lèi)號(hào): | G06F11/36 |
| 代理公司: | 南京天翼專(zhuān)利代理有限責(zé)任公司 | 代理人: | 湯志武;王鵬翔 |
| 地址: | 210002江蘇*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 用于 vxworks 操作系統(tǒng) 檢查 內(nèi)存 泄漏 方法 | ||
1.一種用于vxWorks操作系統(tǒng)檢查內(nèi)存泄漏的方法,其特征是:
(1)編寫(xiě)vxWorks操作系統(tǒng)的內(nèi)存申請(qǐng)函數(shù)和內(nèi)存釋放函數(shù)的跳轉(zhuǎn)指令及其補(bǔ)丁函數(shù)程序;補(bǔ)丁函數(shù)程序?qū)?nèi)存申請(qǐng)函數(shù)和內(nèi)存釋放函數(shù)第一條指令替換為跳轉(zhuǎn)指令,此跳轉(zhuǎn)指令跳轉(zhuǎn)到內(nèi)存申請(qǐng)或釋放函數(shù)對(duì)應(yīng)的補(bǔ)丁函數(shù)程序,此補(bǔ)丁函數(shù)程序執(zhí)行信息采集任務(wù),完成信息采集任務(wù)后,再跳回到內(nèi)存申請(qǐng)或釋放函數(shù),恢復(fù)其運(yùn)行;
(2)補(bǔ)丁注入及通信控制程序運(yùn)行在PC機(jī)上,通過(guò)WTX協(xié)議下載補(bǔ)丁函數(shù)程序至vxWorks操作系統(tǒng)中并遠(yuǎn)程運(yùn)行此程序,通過(guò)指令覆蓋修改原系統(tǒng)的內(nèi)存申請(qǐng)及釋放函數(shù)流程,收集內(nèi)存申請(qǐng)及內(nèi)存釋放函數(shù)的信息,然后再通過(guò)WTX協(xié)議或套接字通信方式實(shí)時(shí)上傳這些信息至上位PC機(jī)中供內(nèi)存泄漏分析程序使用;
(3)在PC機(jī)上通過(guò)內(nèi)存泄漏分析程序?qū)崟r(shí)分析采集程序收集到的內(nèi)存申請(qǐng)函數(shù)和內(nèi)存釋放函數(shù)的內(nèi)存地址信息,并進(jìn)行配對(duì),配對(duì)原則是:若相鄰的兩接點(diǎn)的內(nèi)存申請(qǐng)地址、內(nèi)存釋放地址相同,則認(rèn)為配對(duì)成功;配對(duì)成功者,刪除這兩條信息,若半分鐘內(nèi)未配對(duì)成功,則認(rèn)定此處發(fā)生了內(nèi)存泄漏;再通過(guò)vxWorks操作系統(tǒng)自帶dump工具離線(xiàn)分析目標(biāo)程序的符號(hào)表,查找采集程序收集到的堆棧數(shù)據(jù)中的返回地址信息在哪個(gè)函數(shù)的地址范圍內(nèi),確定此內(nèi)存申請(qǐng)函數(shù)被調(diào)用的具體位置,從而定位內(nèi)存泄漏發(fā)生處。
2.由權(quán)利要求1所述的用于vxWorks操作系統(tǒng)檢查內(nèi)存泄漏的方法,其特征是:在步驟(1)完成后,即內(nèi)存申請(qǐng)或釋放函數(shù)執(zhí)行完后,再次跳轉(zhuǎn)回補(bǔ)丁函數(shù)繼續(xù)采集數(shù)據(jù),最后跳回到內(nèi)存申請(qǐng)或釋放函數(shù)調(diào)用者的原始程序流程;即由補(bǔ)丁函數(shù)程序修改內(nèi)存申請(qǐng)函數(shù)、內(nèi)存釋放函數(shù)的指令流程,通過(guò)兩次跳轉(zhuǎn)收集申請(qǐng)函數(shù)及釋放函數(shù)的申請(qǐng)地址信息信息。
3.由權(quán)利要求1所述用于vxWorks操作系統(tǒng)檢查內(nèi)存泄漏的方法,其特征是:步驟(3)中,通過(guò)分析原vxWorks操作系統(tǒng)自帶dump工具離線(xiàn)分析目標(biāo)程序的符號(hào)表,查找發(fā)生內(nèi)存泄露的節(jié)點(diǎn)的堆棧數(shù)據(jù)中返回地址信息在哪個(gè)函數(shù)的地址范圍內(nèi),從而確定調(diào)用該內(nèi)存申請(qǐng)函數(shù)的具體函數(shù)。
4.由權(quán)利要求1所述用于vxWorks操作系統(tǒng)檢查內(nèi)存泄漏的方法,其特征是:補(bǔ)丁函數(shù)程序首先備份內(nèi)存申請(qǐng)函數(shù)及內(nèi)存釋放函數(shù)的第一條指令到系統(tǒng)內(nèi)存里任意一個(gè)位置,然后將原來(lái)位置的指令替換為跳轉(zhuǎn)指令,此跳轉(zhuǎn)指令跳轉(zhuǎn)到信息采集程序,信息采集程序收集完特定信息后,再跳轉(zhuǎn)到剛才備份的那條指令處,執(zhí)行完此指令后,再跳轉(zhuǎn)到原函數(shù)第二條指令,恢復(fù)原函數(shù)運(yùn)行。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術(shù)有限公司,未經(jīng)南京南瑞繼保電氣有限公司;南京南瑞繼保工程技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810244677.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過(guò)測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過(guò)處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過(guò)軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 一種VXWORKS操作系統(tǒng)移植的方法
- 實(shí)現(xiàn)VxWorks與Qt通信的消息隊(duì)列方法
- 一種VxWorks映像文件正確性的檢查方法
- 一種用于IEC61850協(xié)議轉(zhuǎn)換設(shè)備的VxWorks操作系統(tǒng)的設(shè)計(jì)方法
- 一種VxWorks系統(tǒng)中BSP的設(shè)計(jì)方法
- 將VxWorks任務(wù)移植到Linux的方法及裝置
- 內(nèi)核加載方法、裝置及存儲(chǔ)介質(zhì)
- VxWorks的快速啟動(dòng)方法
- 一種定制雙系統(tǒng)
- 一種簡(jiǎn)便的VxWorks操作系統(tǒng)系統(tǒng)日志記錄方法





