新四季網

一種仿真工具的c語言單步調試實現方法

2023-05-23 07:15:31 2

專利名稱:一種仿真工具的c語言單步調試實現方法
技術領域:
本技術主要應用於智慧卡軟體開發仿真調試工具領域。
背景技術:
彙編和C是目前智慧卡軟體開發使用的兩種主要程式語言,由於C語言的可讀性 強、可移植性好而得到廣泛應用。但C語言相對彙編語言要複雜的多,給仿真調試工具的開 發增加了不少困難,與彙編語言相比較,C語言的一個單步調試命令(包括單步進入Mep In、單步跨越Mep Over),對應於彙編語言會執行若干條指令,而且其中還可能有跳轉分 支,不同的順序執行指令和跳轉分支指令相結合,使得C語言的調試非常複雜。

發明內容
本發明首先由仿真器實現基本調試命令,然後由編譯器對程序代碼解釋生成代碼 行/程序地址對應表以及跳轉表,最後由IDE實現具體調試邏輯。仿真器實現調試命令如下乂印In 單步,進入函數;乂印Over 單步,跳過函數;Run to 執行到具體一個程序代碼地址。另外,硬體有兩種狀態running和stop,在調試過程中需要返回給IDE。編譯器生成的代碼行/程序地址對應表內容包括FileName 代碼所在文件;LineIndex 代碼所在行;LineAddressRange 代碼地址範圍,包括起始地址MartAddress和結束地址 EndAddress0IDE根據這些信息來實現調試邏輯,並將當前調試行顯示給用戶。跳轉表內容包括InsName 跳轉指令名稱;AsmFile C文件編譯生成的中間彙編文件名;AsmLine 對應中間彙編文件的行號;hsAddr 跳轉指令所在地址。本發明用來解決C語言程序單步調試的問題。方案主要由兩方面構成1)通過將 彙編單步命令乂印In/Step Over和運行指定地址Run to命令相結合,來處理C語言代碼 行地址問題;幻通過仿真器狀態控制,來確定何時完成一次單步調試。使用該方案的好處 是,除了可以支持C語言調試外,也能較好的兼容彙編語言調試。


圖1 :C語言程序單步調試邏輯流程圖
圖2 仿真器控制邏輯流程圖
具體實施例方式1、C語言程序單步調試行地址處理方法對於彙編語言來說,由於每一行代碼就對應著一條彙編語句,所以很容易處理,直 接發送Mep In/Step Over命令即可。然而,對於C語言,每一行代碼可能對應多條彙編語句,並且這多條彙編語句可能 不連續,甚至存在多個跳轉語句,如何跳出該行C代碼只有執行時才能確定。因此,不能簡 單的將調試命令一對一的翻譯,而需要另行建立一套邏輯方法來處理。詳細流程步驟如下1)獲取當前程序指針PC和當前調試代碼行地址範圍AddrRange,轉入步驟2);2)比較當前程序指針PC和當前調試代碼行地址範圍AddrRange,若PC在 AddrRange範圍內轉入步驟3),否則轉入步驟4);3)直接發送乂印In/Step Over單步命令,轉入步驟9);4)查找跳轉地址表,找出距離當前程序PC最近的跳轉地址JmpAddr,轉入步驟 5);5)比較跳轉地址JmpAddr和代碼行地址範圍AddrRange,若JmpAddr在AddrRange 範圍內轉入步驟6),否則轉入步驟7); 6) Run to地址設置為JmpAddr,轉入步驟8);7) Run to地址設置為AddrRange的結束地址,轉入步驟8);8)發送Run to命令,轉入步驟9);9)結束本次調試。2、對仿真器狀態的控制方法使用兩個線程實現對仿真器狀態的控制 主線程,負責給仿真器發送調試命令,啟動監視線程; 監視線程,監測到仿真器是否處於停止狀態。如果仿真器停止,則判斷是否需要 重複當前調試過程。如果不需要則向主窗口發送仿真器停止的消息,否則重複當前調試過程。判斷是否重複當前調試過程的依據是當前光標所在代碼行與調試程序地址所在 代碼行是否相同。如果相同,則需要重複調試過程;如果不同,則發送停止消息。詳細流程步驟如下1)進入主線程,並且調試窗口為靜止狀態,轉入步驟2);2)啟動監視線程,監視線程啟動成功轉入步驟3),否則轉入步驟8);3)監視線程向仿真器發送狀態查詢命令,獲取當前仿真器狀態,轉入步驟4);4)判斷仿真器狀態,若仿真器狀態為停止則轉入步驟5),否則返回步驟3);5)判斷是否重複當前調試過程,是則轉入步驟6),否則轉入步驟7);6)發送調試命令並停止監視線程,轉入步驟1);7)通知主窗口並停止監視線程,轉入步驟1);8)退出調試。
權利要求
1.一種仿真工具的C語言單步調試實現方法,其特徵是採用彙編乂印In/Step Over 和Rimto處理C語言代碼行地址,並且通過控制仿真器在合適的時候停止運行,來實現C語言單步調試。
2.如權利1所述一種仿真工具的C語言單步調試實現方法,其特徵是通過比較程序 當前運行地址和C語言代碼行的地址範圍來決定是使用乂印In/Step Over命令還是使用 Run to命令,以及Run to的具體地址。
3.如權利1所述一種仿真工具的C語言單步調試實現方法,其特徵是比較當前光標 所在代碼行和調試程序地址所在代碼行是否相同,判斷是重複執行當前調試過程還是發送 停止消息,來完成一次單步調試。
全文摘要
本發明提供了一種單步調試的實現方法,通過將彙編的單步Step In/Step Over和運行到指定地址Run to相結合處理C代碼行,以及控制仿真器在合適時候停止運行的方式,較好地解決了C語言程序仿真單步調試的問題。
文檔編號G06F11/36GK102110046SQ20091024348
公開日2011年6月29日 申請日期2009年12月23日 優先權日2009年12月23日
發明者韓磊 申請人:北京中電華大電子設計有限責任公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀