TW201321972A - 除錯方法及相關電腦系統 - Google Patents
除錯方法及相關電腦系統 Download PDFInfo
- Publication number
- TW201321972A TW201321972A TW100143092A TW100143092A TW201321972A TW 201321972 A TW201321972 A TW 201321972A TW 100143092 A TW100143092 A TW 100143092A TW 100143092 A TW100143092 A TW 100143092A TW 201321972 A TW201321972 A TW 201321972A
- Authority
- TW
- Taiwan
- Prior art keywords
- debug data
- processor core
- debug
- data
- transfer area
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software debugging using additional hardware using a specific debug interface
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
一種用於多處理器核心的除錯方法,包含於一儲存裝置中定義一除錯資料傳輸區;利用一第一處理器核心產生一除錯資料;以及經由該除錯資料傳輸區,將該除錯資料傳輸至一第二處理器核心,以進行除錯。
Description
本發明係指一種除錯方法及相關電腦系統,尤指一種不需額外建置硬體電路又可取得完整執行記錄資料來進行除錯之除錯方法及相關電腦系統。
當程式設計者設計一嶄新程式於多核心處理器執行時,通常需利用各種除錯方式來尋找出程式錯誤的原因,以利於進行後續的修正程序。一般而言,在多核心處理器的系統中,當擁有多處理器核心的多核心處理器執行一多核心程式時,不同處理器核心會負責執行該多核心程式之不同部份,並透過各處理器核心之間的資料傳遞,完成該多核心程式。然而,由於在同一多核心處理器中,並非全部的處理器核心都有提供除錯及記錄的通道而可以自行輸出執行記錄資料,如此一來,當程式開發者欲針對該多核心程式進行除錯時,使用者將無法得知所有處理器核心的運作狀態而難以對該多核心程式進行除錯。也就是說,由於程式設計者無法獲得全部處理器之運作資料,因此將增加程式除錯的困難度。
對於無法自行輸出執行記錄資料來進行除錯的處理器核心,傳統的方式便是利用一嵌入式電路模擬器(In-Circuit Emulator,ICE),搭配事先定義好的除錯介面(例如聯合測試工作群組(Joint Test Action Group,JTAG)介面或增強聯合測試工作群組(enhanced JTAG)介面)來實現與多核心處理器中之一處理器核心連結(contact)的目的,並於該處理器核心執行工作時,檢視該處理器核心之操作狀態,從而讓程式設計者獲得該處理器核心之運作資料,以進行除錯。
然而,由於使用嵌入式電路模擬器來進行除錯時,在實作上需額外增加硬體電路來加以實現。再者,每一個處理器核心需要搭配自有的嵌入式電路模擬器與除錯介面。因此,隨著處理器核心數量的增加,所需額外增加的硬體電路也隨之增多,因而導致多核心處理器之開發成本大幅上升。另一方面,對於多核心處理器的開發設計者來說,也會增添開發設計的複雜度。因此,如何在不需增加硬體電路的情況下又能有效實現程式除錯,是目前亟需解決的問題。
因此,本發明主要提供一種不需額外建置硬體電路又可取得完整執行記錄資料來進行除錯之除錯方法及相關電腦系統。
本發明揭露一種用於多處理器核心的除錯方法,包含有於一儲存裝置中定義一除錯資料傳輸區;利用一第一處理器核心產生一除錯資料;以及經由該除錯資料傳輸區,將該除錯資料傳輸至一第二處理器核心,以進行除錯。
本發明另揭露一種電腦系統,包含有一儲存裝置,包含一除錯資料傳輸區,用來提供儲存資料;一第一處理器核心,用來執行一第一應用程式並產生一除錯資料,且於產生該除錯資料時,將該除錯資料儲存至該除錯資料傳輸區傳輸;以及一第二處理器核心,用來執行一第二應用程式,並自該除錯資料傳輸區存取該除錯資料。
請參考第1圖,第1圖為本發明實施例之一電腦系統10之示意圖。電腦系統10係應用於一多核心處理器中,舉例來說,該多核心處理器可以是一中央處理器、一數位訊號處理器(Digital Signal Processor,DSP)或系統晶片(System on Chip,SoC),但不以此為限。電腦系統10可執行一多核心應用程式,並將執行該多核心應用程式時所產生之除錯資料輸出,以便使用者利用所輸出之除錯資料來進行除錯。如第1圖所示,電腦系統10包含一儲存裝置100以及處理器核心102、104。儲存裝置100用來提供處理器核心102及處理器核心104存取資料。儲存裝置100可以是一快閃記憶體、一可程式唯讀記憶體(PROM)或一電子式可消除程式化唯讀記憶體(EEPROM)等記憶體裝置,但不以此為限。處理器核心102與處理器核心104用來執行系統應用程式,例如執行如視窗(Windows)作業系統、Linux作業系統或Android作業系統等作業系統、全球定位系統應用程式或其他各式相關應用程式等,但不以此為限。此外,處理器核心102與處理器核心104係為於同一多核心處理器之中。在本發明中,在處理器核心102並無除錯及記錄的通道而無法輸出執行記錄資料,而處理器核心104可將輸出執行記錄資料輸出讓使用者據以進行除錯判斷的情況下,當處理器核心102執行系統應用程式時使用者將無法即時監控處理器核心102之運作狀態,因此處理器核心102可將除錯資料DATA藉由儲存裝置100傳輸至處理器核心104,以便使用者藉由處理器核心104獲得除錯資料DATA。如此一來,即使不使用額外硬體,使用者可有效利用除錯資料DATA進行除錯。
詳細而言,當處理器核心102執行系統應用程式且產生除錯資料DATA時,處理器核心102可利用一訊息佇列(message queue)物件,透過儲存裝置100將除錯資料DATA傳輸至處理器核心104。而處理器核心104也可利用一訊息佇列物件經由儲存裝置100接收除錯資料DATA。接著,使用者可於處理器核心104接收到除錯資料DATA後,讀取並分析除錯資料DATA,以進行程式除錯。
需注意的是,第1圖之電腦系統10係本發明之實施例,其係以功能方塊方式表示本發明之概念,而各方塊的實現方式或相關訊號的形式與產生方式可根據各種系統需求而適當調整。舉例來說,請參考第2圖,第2圖為本發明實施例之電腦系統10之另一示意圖。如第2圖所示,儲存裝置100包含一除錯資料傳輸區200,除錯資料傳輸區200用來儲存除錯資料DATA。處理器核心102包含一應用程式介面202及一通信單元204。應用程式介面202用來將處理器核心102產生之除錯資料DATA輸出至通信單元204。通信單元204用來將除錯資料DATA儲存至除錯資料傳輸區200。處理器核心104包含一通信單元206及一應用程式介面208。通信單元206用來存取除錯資料傳輸區200中的除錯資料DATA,並將讀取到的除錯資料DATA輸出至應用程式介面208。使用者則於應用程式介面208接收到除錯資料DATA後,利用除錯資料DATA進行除錯。
舉例來說,當處理器核心102產生重要之除錯資料DATA時,應用程式介面202可利用一訊息佇列物件,以將除錯資料DATA傳送至通信單元204。接著,通信單元204會將除錯資料DATA儲存至除錯資料傳輸區200中。此時,處理器核心104之通信單元206會存取除錯資料傳輸區200中之除錯資料DATA,應用程式介面208再利用一訊息佇列物件,自通信單元206接收除錯資料DATA,以便使用者可由通信單元206取得除錯資料DATA來進行除錯。
需注意的是,除錯資料傳輸區200主要係於各處理器核心所共用之儲存裝置內規劃一適當區塊,以提供各處理器核心之間傳輸除錯資料,從而讓使用者讀取並分析除錯資料。因此,根據不同應用,本領域熟知技藝者可據以作出適當變化或調整。舉例來說,電腦系統10可另包含一顯示裝置(未繪示於第2圖中),用來於處理器核心104接收到除錯資料DATA後,將除錯訊息DATA以文字或符號等方式顯示於該顯示裝置,以方便使用者讀取,來達到除錯目的。另外,電腦系統10可另包含一儲存裝置(未繪示於第2圖中),用來於處理器核心104接收到除錯資料DATA後,儲存除錯資料DATA,藉此使用者可觀察多筆除錯資料,進而快速且更有效率地進行除錯。
關於如何在第1圖與第2圖所示之電腦系統10中將除錯資料DATA自處理器核心102傳輸至處理器核心104之方式,可進一步歸納為一除錯流程30,請參考第3圖,需注意的是,若是有實質上相同的結果,則流程30並不以第3圖所示流程圖的順序為限。流程30包含以下步驟:
步驟300:開始。
步驟302;於儲存裝置100定義除錯資料傳輸區200。
步驟304:利用處理器核心102產生除錯資料DATA。
步驟306:於處理器核心102產生除錯訊息DATA時,應用程式介面202輸出除錯訊息DATA至通信單元204。
步驟308:通信單元204儲存除錯訊息DATA至除錯資料傳輸區200。
步驟310:通信單元206讀取儲存於除錯資料傳輸區200之除錯訊息DATA。
步驟312:通信單元206輸出除錯訊息DATA至應用程式介面208。
步驟314:結束。
舉例來說,請繼續參考第2圖與第3圖,以電腦系統10執行一全球定位系統(GPS)導航應用為例,處理器核心102負責接收全球定位系統衛星之定位信號,處理器核心104負責根據處理器核心102負責所接收的定位信號,來進行導航圖資的計算。當欲對處理器核心102進行除錯時,電腦系統10會先於儲存裝置100中規劃除錯資料傳輸區200,以便處理器核心102與處理器核心104傳輸除錯資料DATA。此外,處理器核心102於接收全球定位系統衛星定位信號時會產生除錯資料DATA。應用程式介面202可利用一訊息佇列物件,將除錯資料DATA輸出至通信單元204。通信單元204再將除錯資料DATA儲存至除錯資料傳輸區200。通信單元206則會自除錯資料傳輸區200存取到除錯資料DATA。在電腦系統10中,通信單元206可定期查詢除錯資料傳輸區200是否有通信單元204所儲存之除錯資料DATA。當通信單元206查詢到除錯資料傳輸區200儲存有通信單元204所儲存之除錯資料DATA時,則存取除錯資料DATA。最後,應用程式介面208則利用一訊息佇列物件,自通信單元206接收除錯資料DATA。
進一步地,輸出除錯資料DATA給使用者之方式可根據不同應用而改變,本領域熟知技藝者可據以作出適當變化或調整。舉例來說,除錯流程30可另包含於通信單元206輸出除錯訊息DATA至應用程式介面208後,應用程式介面208將除錯資料DATA輸出至一顯示裝置,以文字或符號等方式顯示除錯資料DATA於該顯示裝置,以便使用者讀取。此外,除錯流程30可另包含於通信單元206輸出除錯訊息DATA至應用程式介面208後,應用程式介面208將除錯資料DATA儲存至一第二儲存裝置。如此一來,使用者即可記錄並觀察除錯資料DATA之變化,而能輕易且更有效率地進行除錯。
綜上所述,本發明利用共用之儲存裝置來實現一除錯資料傳遞通道,以使各處理器核心之間可互相傳遞除錯訊息,如此一來,使用者即可即時監控各處理器核心之運作狀態,而能輕易且快速地找出錯誤的部分。相較於先前技術,本發明完全不需增加外部硬體電路,僅需透過現有的儲存裝置即可取得相關的除錯訊息。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
10...電腦系統
100...儲存裝置
102、104...處理器核心
200...除錯資料傳輸區
202、208...應用程式介面
204、206...通信單元
30...除錯流程
300~314...步驟
第1圖為本發明實施例之一電腦系統之示意圖。
第2圖為本發明實施例之一電腦系統之另一示意圖。
第3圖為本發明實施例之一流程之示意圖。
30...流程
300~314...步驟
Claims (16)
- 一種用於多處理器核心的除錯方法,包含有:於一儲存裝置中定義一除錯資料傳輸區;利用一第一處理器核心產生一除錯資料;以及經由該除錯資料傳輸區,將該除錯資料傳輸至一第二處理器核心,以進行除錯。
- 如請求項1所述之除錯方法,其中經由該除錯資料傳輸區,將該除錯資料傳輸至該第二處理器核心,以進行除錯之步驟包含有:於該第一處理器核心產生該除錯資料之後,將該除錯資料儲存至該除錯資料傳輸區;以及利用該第二處理器核心自該除錯資料傳輸區存取該除錯資料,以進行除錯。
- 如請求項2所述之除錯方法,其中於該第一處理器核心產生該除錯資料之後,將該除錯資料儲存至該除錯資料傳輸區之步驟包含有:於產生該除錯資料之後,利用該第一處理器核心之一第一程式應用介面將該除錯資料傳送至該第一處理器核心之一第一通信單元;以及利用該第一通信單元將該除錯資料傳輸至該除錯資料傳輸區。
- 如請求項2所述之除錯方法,其中利用該第二處理器核心自該除錯資料傳輸區存取該除錯資料,以進行除錯之步驟包含有:利用該第二處理器核心之一第二通信單元自該除錯資料傳輸區存取該除錯資料;以及利用該第二通信單元將所存取到之該除錯資料傳送至該第二處理器核心之一第二程式應用介面。
- 如請求項4所述之除錯方法,其中利用該第二處理器核心之該第二通信單元自該除錯資料傳輸區存取該除錯資料之步驟包含有:利用該第二處理器核心之該第二通信單元定期查詢該除錯資料傳輸區是否有該第一通信單元所儲存之該除錯資料;以及於該除錯資料傳輸區儲存有該第一通信單元所儲存之該除錯資料時,存取該除錯資料。
- 如請求項1所述之除錯方法,其中該第一處理器核心以及該第二處理器核心係位於同一多核心處理器中。
- 如請求項6所述之除錯方法,其中該多核心處理器係為一中央處理器。
- 如請求項1所述之除錯方法,其另包含:該第二處理器核心將該除錯資料輸出至一顯示裝置,以顯示該除錯資料。
- 如請求項1所述之除錯方法,其另包含:該第二處理器核心將該除錯資料儲存至一第二儲存裝置。
- 一種電腦系統,包含有:一儲存裝置,包含一除錯資料傳輸區,用來提供儲存資料;一第一處理器核心,用來執行一第一應用程式並產生一除錯資料,且於產生該除錯資料時,利用該除錯資料傳輸區傳輸該除錯資料;以及一第二處理器核心,用來執行一第二應用程式,並由該除錯資料傳輸區接收該除錯資料。
- 如請求項10所述之電腦系統,其中該第一處理器核心包含有:一第一程式應用介面,用來於該第一處理器核心產生該除錯資料時,輸送出該除錯資料;以及一第一通信單元,用來於接收到由第一程式應用介面所傳送之該除錯資料時,將該除錯資料儲存至該除錯資料傳輸區。
- 如請求項10所述之電腦系統,其中該第二處理器核心包含有:一第二程式應用介面,用來於接收到該除錯資料時,輸送出該除錯資料;以及一第二通信單元,用於自該除錯資料傳輸區存取該除錯資料,並將所存取到之該除錯資料傳送至該第二程式應用介面。
- 如請求項10所述之電腦系統,其中該第一處理器核心以及該第二處理器核心係位於同一多核心處理器中。
- 如請求項13所述之電腦系統,其中該多核心處理器係一電子裝置之一中央處理器。
- 如請求項10所述之電腦系統,其另包含一顯示裝置,用來於該第二處理器核心藉由該除錯資料傳輸區接收該除錯資料後,顯示該除錯資料。
- 如請求項10所述之電腦系統,其另包含一第二儲存裝置,用來於該第二處理器核心藉由該除錯資料傳輸區接收該除錯資料後,儲存該除錯資料。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100143092A TW201321972A (zh) | 2011-11-24 | 2011-11-24 | 除錯方法及相關電腦系統 |
CN2011103981284A CN103136063A (zh) | 2011-11-24 | 2011-12-05 | 除错方法及相关电脑系统 |
US13/363,393 US20130139002A1 (en) | 2011-11-24 | 2012-02-01 | Debugging method and computer system using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW100143092A TW201321972A (zh) | 2011-11-24 | 2011-11-24 | 除錯方法及相關電腦系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201321972A true TW201321972A (zh) | 2013-06-01 |
Family
ID=48467937
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100143092A TW201321972A (zh) | 2011-11-24 | 2011-11-24 | 除錯方法及相關電腦系統 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130139002A1 (zh) |
CN (1) | CN103136063A (zh) |
TW (1) | TW201321972A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9606888B1 (en) * | 2013-01-04 | 2017-03-28 | Marvell International Ltd. | Hierarchical multi-core debugger interface |
CN116340188B (zh) * | 2023-05-26 | 2023-08-04 | 深流微智能科技(深圳)有限公司 | Gpu芯片渲染任务的调试方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7624250B2 (en) * | 2005-12-05 | 2009-11-24 | Intel Corporation | Heterogeneous multi-core processor having dedicated connections between processor cores |
US20070254665A1 (en) * | 2006-05-01 | 2007-11-01 | Symbol Technologies, Inc. | Wireless Switches with JTAG Emulators |
US8762779B2 (en) * | 2010-01-22 | 2014-06-24 | Via Technologies, Inc. | Multi-core processor with external instruction execution rate heartbeat |
CN102096607B (zh) * | 2010-03-16 | 2014-10-29 | 威盛电子股份有限公司 | 微处理器及其除错方法 |
-
2011
- 2011-11-24 TW TW100143092A patent/TW201321972A/zh unknown
- 2011-12-05 CN CN2011103981284A patent/CN103136063A/zh active Pending
-
2012
- 2012-02-01 US US13/363,393 patent/US20130139002A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
CN103136063A (zh) | 2013-06-05 |
US20130139002A1 (en) | 2013-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103049375B (zh) | 一种摄像头在线调试方法 | |
US8825922B2 (en) | Arrangement for processing trace data information, integrated circuits and a method for processing trace data information | |
US9367427B2 (en) | Embedding and executing trace functions in code to gather trace data | |
US9262299B1 (en) | Simulation observability and control of all hardware and software components of a virtual platform model of an electronics system | |
US10102050B2 (en) | System and method for generating cross-core breakpoints in a multi-core microcontroller | |
JP2006313521A (ja) | プログラマブルデバイスのモデリング方法および装置 | |
US20160299859A1 (en) | Apparatus and method for external access to core resources of a processor, semiconductor systems development tool comprising the apparatus, and computer program product and non-transitory computer-readable storage medium associated with the method | |
US20190042395A1 (en) | Source code profiling through enhanced mapping | |
TW201321972A (zh) | 除錯方法及相關電腦系統 | |
WO2023107362A2 (en) | Event tracing | |
JP2016076106A (ja) | 半導体装置及び電子機器 | |
EP3121728B1 (en) | System and method for remotely debugging a device | |
US9291672B2 (en) | Debug system, apparatus and method thereof for providing graphical pin interface | |
JP2016091277A (ja) | トレースシステムおよびicチップ | |
US20150106792A1 (en) | Method of presenting trace data with improved efficiency by using hosted formatted output commands | |
CN114968751A (zh) | 一种无代码开发平台的程序调试方法和程序调试装置 | |
CN112765018A (zh) | 一种仪器仪表调试系统及方法 | |
TW200917127A (en) | Structure having virtual input/output for embedded software and hardware integrated development | |
JP2006146412A (ja) | マルチコアプロセッサ及びデバッグ方法 | |
JP5312918B2 (ja) | タイムスタンプ取得回路及びタイムスタンプ取得方法 | |
JP2011203803A (ja) | デバッグ支援装置及びデバッグ支援用プログラム | |
CN112328491A (zh) | 追踪消息的输出方法、电子设备及存储介质 | |
US10635769B1 (en) | Hardware and software event tracing for a system-on-chip | |
Johnson | OTTER Debugger | |
US20050120348A1 (en) | Method of determining information about the processes which run in a program-controlled unit during the execution of a program by the program-controlled unit |