[發明專利]檢查程序運行錯誤的方法及裝置有效
| 申請號: | 201010189460.5 | 申請日: | 2010-05-24 |
| 公開(公告)號: | CN102262584A | 公開(公告)日: | 2011-11-30 |
| 發明(設計)人: | 謝浩 | 申請(專利權)人: | 北大方正集團有限公司;北京北大方正電子有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 黃志華 |
| 地址: | 100871 北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 檢查 程序 運行 錯誤 方法 裝置 | ||
技術領域
本發明屬于計算機信息技術領域,尤其涉及一種檢查程序運行錯誤的方法及裝置。
背景技術
在程序員編程過程中,為了檢查程序是否發生了錯誤,可以采用向程序中插入靜態閱讀源碼的方案來實現這一目的,該方案簡單來說就是在程序的指定位置處插入額外的代碼,這些額外的代碼用于輸出程序運行時的相關信息以便于程序員根據該些相關信息確認程序運行過程中是否發生了錯誤。雖然采用上述方案能夠有效檢測到程序運行錯誤,但該方案在實際應用中也被證明存在著下述缺陷:
該方案需要在程序中帶入大量無真實作用的代碼,會影響程序的運行效率,并使得程序代碼的可閱讀性降低。
發明內容
本發明實施例提供一種檢查程序運行錯誤的方法及裝置,用以解決現有技術中提供的向程序中插入靜態閱讀源碼來檢查程序運行錯誤的方案會增大程序對存儲空間需求量,且會使得程序代碼的可閱讀性降低的問題。
本發明實施例采用以下技術方案:
一種檢查程序運行錯誤的方法,包括:
在運行程序的過程中,從所述程序所在的存儲空間外的存儲空間中,獲得預先設置的用于檢查所述程序運行過程中是否發生錯誤的診斷腳本,并確定診斷腳本中設置的排查點所指示的所述程序的行數;通過運行所述診斷腳本中預設的用于獲得上下文信息的代碼,獲得所述程序運行到確定的所述行數時的上下文信息;根據獲得的所述上下文信息以及預設的標準上下文信息,判斷所述程序運行過程中是否發生錯誤。
較佳地,所述排查點是根據預先記錄的所述程序可能出現的錯誤類型設置的。
較佳地,獲得所述上下文信息之后,還包括:根據預設的信息傳輸路徑傳輸獲得的所述上下文信息。
較佳地,該方法還可以包括:判斷出所述程序發生錯誤時,將獲得的所述上下文信息設置為與預定的標準上下文信息一致。
較佳地,所述上下文相關信息為下述信息中的一項或多項的組合:
所述程序包含的各種類型的變量信息;
所述程序包含的各種類型的結構信息;
所述程序的堆棧內容信息;
所述程序的調用棧內容信息;
所述程序的堆片段內容信息;
所述程序的進程信息;
所述程序的線程信息;
所述程序的運行環境中的硬件上下文信息。
一種檢查程序運行錯誤的裝置,包括:
診斷腳本獲得單元,用于在運行程序的過程中,從所述程序所在的存儲空間外的存儲空間中,獲得預先設置的用于檢查所述程序運行過程中是否發生錯誤的診斷腳本;確定單元,用于確定診斷腳本獲得單元獲得的診斷腳本中設置的排查點所指示的所述程序的行數;上下文信息獲得單元,用于通過運行所述診斷腳本中預設的用于獲得上下文信息的代碼,獲得所述程序運行到確定單元確定的行數時的上下文信息;判斷單元,用于根據上下文信息獲得單元獲得的上下文信息以及預設的標準上下文信息,判斷所述程序運行過程中是否發生錯誤。
采用本發明實施例提供的方案,通過在運行程序的過程中,從程序所在的存儲空間外的存儲空間中獲得診斷腳本,從而通過運行診斷腳本的代碼,就能獲得程序運行時的上下文信息,而根據獲得的上下文信息和預設的標準上下文信息,就能夠判斷程序運行過程中是否發生錯A誤,由于本發明實施例提供的該方案中,診斷腳本是設置在程序所在的存儲空間外的存儲空間中的,在實現對程序運行過程中是否發生錯誤進行檢查的同時,該診斷腳本不會增大程序本身對存儲空間需求量,因此解決了現有技術中提供的向程序中插入靜態閱讀源碼來檢查程序運行錯誤的方案會增大程序本身對存儲空間需求量的問題,同時,采用本發明實施例提供的方案還不會降低程序代碼的可閱讀性。
附圖說明
圖1為本發明實施例提供的一種檢查程序運行錯誤的方法的具體流程示意圖;
圖2a為本發明實施例提供的檢查程序運行錯誤的方法在實際中的應用環境示意圖;
圖2b為本發明實施例提供的檢查程序運行錯誤的方法在實際中的應用流程示意圖;
圖3為本發明實施例提供的一種檢查程序運行錯誤的裝置的具體結構示意圖。
具體實施方式
為了解決現有技術中提供的向程序中插入靜態閱讀源碼來檢查程序運行錯誤的方案會增大程序本身對存儲空間的需求的問題,本發明實施例提供了一種檢查程序運行錯誤的方案,用以在不會增大程序本身對存儲空間需求量的前提下,實現對程序運行過程中是否發生錯誤進行檢查。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北大方正集團有限公司;北京北大方正電子有限公司,未經北大方正集團有限公司;北京北大方正電子有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010189460.5/2.html,轉載請聲明來源鉆瓜專利網。





