[發(fā)明專利]程序跑飛檢測方法及其設(shè)備無效
| 申請?zhí)枺?/td> | 200810110011.X | 申請日: | 2008-06-02 |
| 公開(公告)號: | CN101599042A | 公開(公告)日: | 2009-12-09 |
| 發(fā)明(設(shè)計)人: | 謝輝 | 申請(專利權(quán))人: | 松下電器產(chǎn)業(yè)株式會社 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中科專利商標(biāo)代理有限責(zé)任公司 | 代理人: | 王 瑋 |
| 地址: | 日本*** | 國省代碼: | 日本;JP |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 程序 檢測 方法 及其 設(shè)備 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及調(diào)試過程中程序跑飛(program?runout)的檢測,具體涉及一種程序跑飛檢測方法及其設(shè)備,它能夠準(zhǔn)確檢測并向用戶通知程序跑飛。
背景技術(shù)
在程序開發(fā)過程中,需要對開發(fā)的程序進(jìn)行調(diào)試,以便發(fā)現(xiàn)程序能否正常運(yùn)行。所謂程序跑飛就是程序計數(shù)器(PC:program?counter)指針因?yàn)槟撤N原因沒有按照預(yù)定的程序變更,或者PC指針指向一個不確定的或者根本就沒有存放用戶代碼的程序存貯空間,造成PC指針根本無法恢復(fù)到用戶代碼空間之內(nèi)。出現(xiàn)程序跑飛之后,通常是系統(tǒng)復(fù)位,重新開始執(zhí)行程序。
用來檢測程序跑飛的一種解決方案是判斷執(zhí)行的代碼的地址是否在ROM的地址空間范圍之內(nèi),例如0000H~FFFFH。如果在ROM的地址空間范圍之內(nèi),則認(rèn)為沒有跑飛,否則認(rèn)為出現(xiàn)了程序跑飛。但是,眾所周知,ROM中既存儲有程序代碼,又存儲有數(shù)據(jù)代碼,還存在一些未使用的空間,如果執(zhí)行的代碼的所對應(yīng)的地址在ROM內(nèi)部,但是并沒有按照想要的情況運(yùn)行,則不容易判斷出程序是否真正跑飛,或者說用戶可能注意不到程序跑飛。
在這種情況下,只能通過程序執(zhí)行的結(jié)果來判斷程序是否跑飛,例如死機(jī)等等。一旦出現(xiàn)這樣的情況,程序員無法確定到底是程序的什么地方出了問題,只能以枚舉的形式或者試錯的形式來發(fā)現(xiàn)問題,這要消耗大量的時間,并且并不能準(zhǔn)確找到程序跑飛的位置和原因。
用來檢測程序跑飛的另一種解決方案是利用‘看門狗’,它可以是軟件形式的或者硬件形式的。‘看門狗(watchdog)’是通過要求執(zhí)行的程序定期發(fā)送確認(rèn)信號或者其他信息來判斷程序是否跑飛。例如按照預(yù)定的規(guī)則,執(zhí)行中的程序并未在設(shè)定的時刻發(fā)出確認(rèn)信號,則認(rèn)為出現(xiàn)了程序跑飛。
但是利用‘看門狗’同樣無法解決準(zhǔn)確定位程序跑飛的準(zhǔn)確位置和保護(hù)程序跑飛的現(xiàn)場的問題。一旦發(fā)現(xiàn)了程序跑飛,程序員同樣要花費(fèi)大量的時間和精力來判斷程序跑飛的位置和引起程序跑飛的原因。
發(fā)明內(nèi)容
本發(fā)明的一個目的是提出一種檢測程序跑飛的方法及其設(shè)備,它能夠準(zhǔn)確檢測程序跑飛的位置,從而方便程序員判斷引起程序跑飛的原因,大大提高了程序開發(fā)效率。
在本發(fā)明的一個方面,提出了一種檢測程序跑飛的方法,包括步驟:執(zhí)行程序中包含的代碼;判斷與代碼相關(guān)的程序計數(shù)器地址是否在事先計算的地址范圍之內(nèi);以及在程序計數(shù)器地址在事先計算的地址范圍之外的情況下,確定程序跑飛。
根據(jù)本發(fā)明的實(shí)施例,所述方法還包括:在程序執(zhí)行之前計算與該程序中的代碼相關(guān)的地址范圍,并以與所述代碼相對應(yīng)的形式存儲所計算的地址范圍。
根據(jù)本發(fā)明的實(shí)施例,所述方法還包括:在程序執(zhí)行過程中,記憶程序中的代碼的執(zhí)行履歷。
根據(jù)本發(fā)明的實(shí)施例,所述的方法還包括:在確定程序跑飛的情況下,通知用戶程序跑飛。
根據(jù)本發(fā)明的實(shí)施例,所述的方法還包括:向用戶顯示到程序跑飛的位置之前的執(zhí)行履歷。
在本發(fā)明的第二方面,提出了一種檢測程序跑飛的方法,包括步驟:執(zhí)行程序中包含的代碼;基于與所執(zhí)行的代碼的程序計數(shù)器地址,嘗試從包括了至少部分代碼的調(diào)試信息的文件中取得相應(yīng)的調(diào)試信息;在取得相應(yīng)調(diào)試信息的情況下,確定程序跑飛。
在本發(fā)明的第三方面,提出了一種檢測程序跑飛的設(shè)備,包括:執(zhí)行程序中包含的代碼的裝置;檢測裝置,判斷與代碼相關(guān)的程序計數(shù)器地址是否在事先計算的地址范圍之內(nèi),以及在程序計數(shù)器地址在事先計算的地址范圍之外的情況下,確定程序跑飛。
根據(jù)本發(fā)明的實(shí)施例,所述的設(shè)備還包括:地址計算裝置,在程序執(zhí)行之前計算與該程序中的代碼相關(guān)的地址范圍;以及地址范圍存儲裝置,以與所述代碼相對應(yīng)的形式存儲所計算的地址范圍。
根據(jù)本發(fā)明的實(shí)施例,所述的設(shè)備還包括:執(zhí)行履歷記憶裝置,在程序執(zhí)行過程中,記憶程序中的代碼的執(zhí)行履歷。
根據(jù)本發(fā)明的實(shí)施例,所述的設(shè)備還包括:通知裝置,在確定程序跑飛的情況下,通知用戶程序跑飛。
根據(jù)本發(fā)明的實(shí)施例,所述通知裝置向用戶顯示到程序跑飛的位置之前的執(zhí)行履歷。
在本發(fā)明的第四方面,提供了一種檢測程序跑飛的設(shè)備,包括:執(zhí)行程序中包含的代碼的裝置;檢測裝置,基于與所執(zhí)行的代碼的程序計數(shù)器地址,嘗試從包括了至少部分代碼的調(diào)試信息的文件中取得相應(yīng)的調(diào)試信息,以及在取得相應(yīng)調(diào)試信息的情況下,確定程序跑飛。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于松下電器產(chǎn)業(yè)株式會社,未經(jīng)松下電器產(chǎn)業(yè)株式會社許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200810110011.X/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





