日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)的制作方法

文檔序號:10665722閱讀:496來源:國知局
用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)的制作方法
【專利摘要】一種用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)。該用于追蹤程序執(zhí)行狀態(tài)的方法包括:提供一處理器,其中該處理器包括第一核心與第二核心;藉由該第一核心運行一操作系統(tǒng),并藉由該第二核心運行一程序;在該第二核心運行該程序的期間,藉由該第一核心利用一追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù);以及儲存關(guān)聯(lián)于該程序的該原始執(zhí)行數(shù)據(jù)。本發(fā)明使得程序設(shè)計人員可依據(jù)完整的原始執(zhí)行數(shù)據(jù)而得知程序的詳細執(zhí)行歷程,甚至可從完整的原始執(zhí)行數(shù)據(jù)發(fā)現(xiàn)程序編譯器無法發(fā)現(xiàn)的錯誤,從而提升軟件程序開發(fā)上的便利性。
【專利說明】
用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種程序的檢錯方法,且特別涉及一種用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)。
【背景技術(shù)】
[0002]現(xiàn)在有許多電子裝置使用處理器(processor)作為控制中樞,處理器運行軟件程序以提供電子裝置的各項功能。所述軟件程序可包括操作系統(tǒng)、應(yīng)用程序或驅(qū)動程序等。一般來說,當電子裝置發(fā)生系統(tǒng)當機時,操作者或程序設(shè)計人員不一定可清楚得知問題的發(fā)生點。雖然說當前的操作系統(tǒng)可在發(fā)生死機前儲存一份核心存儲器的轉(zhuǎn)儲作為用來檢錯的參考信息,但由于上述參考信息僅僅記錄死機發(fā)生當下的一些片斷信息,因此其并不足以解決問題或完整重現(xiàn)問題發(fā)生的過程。
[0003]此外,在處理器運行程序的過程中,有些錯誤是要整個程序被連續(xù)執(zhí)行才會顯現(xiàn)?;?,程序設(shè)計人員時常難以依據(jù)片斷的信息而確切的得知錯誤發(fā)生的原因。也就是說,當程序設(shè)計人員欲重新復(fù)制相同的錯誤來進行檢錯時,往往需要耗費非常多的時間與精力。甚至是,在程序執(zhí)行數(shù)據(jù)不足夠的情況下,有些錯誤的發(fā)生情境并不一定可以被完整重現(xiàn)。
[0004]因此,需要一種用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng)來解決上述問題。

【發(fā)明內(nèi)容】

[0005]有鑒于此,本發(fā)明提供一種用于追蹤程序執(zhí)行狀態(tài)的方法與多核心處理系統(tǒng),可將多個核心其中之一執(zhí)行程序的執(zhí)行過程完整地記錄下來,以利于軟件程序的開發(fā)。
[0006]本發(fā)明提出一種用于追蹤程序執(zhí)行狀態(tài)的方法,該用于追蹤程序執(zhí)行狀態(tài)的方法包括:提供一處理器,其中該處理器包括第一核心與第二核心;藉由該第一核心運行一操作系統(tǒng),并藉由該第二核心運行一程序;在該第二核心運行該程序的期間,藉由該第一核心利用一追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù);以及儲存關(guān)聯(lián)于該程序的該原始執(zhí)行數(shù)據(jù)。
[0007]在本發(fā)明的一實施例中,在上述的藉由第一核心運行操作系統(tǒng),并藉由第二核心運行程序的步驟之前,所述方法還包括下列步驟:初始化第一核心以及第二核心,致使第一核心處于執(zhí)行狀態(tài)且第二核心處于準備狀態(tài)。當?shù)谝缓诵奶幱趫?zhí)行狀態(tài)時,藉由第一核心對操作系統(tǒng)執(zhí)行初始化程序并向操作系統(tǒng)注冊追蹤模塊。
[0008]在本發(fā)明的一實施例中,在上述當?shù)谝缓诵奶幱趫?zhí)行狀態(tài)時,藉由第一核心對操作系統(tǒng)執(zhí)行初始化程序并向操作系統(tǒng)注冊追蹤模塊的步驟之后,所述方法還包括下列步驟:將第二核心從準備狀態(tài)轉(zhuǎn)換為執(zhí)行狀態(tài)。
[0009]在本發(fā)明的一實施例中,上述的儲存原始執(zhí)行數(shù)據(jù)的步驟包括下列步驟:將屬于機械語言格式的原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于低級語言格式的原始執(zhí)行數(shù)據(jù);儲存屬于低級語言格式的原始執(zhí)行數(shù)據(jù)于儲存裝置中。
[0010]在本發(fā)明的一實施例中,上述的儲存裝置為外部儲存裝置或內(nèi)部儲存裝置。
[0011 ] 在本發(fā)明的一實施例中,上述的方法還包括下列步驟:提供程序語言轉(zhuǎn)換模塊,并利用程序語言轉(zhuǎn)換模塊將原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于高級語言格式的被追蹤程序代碼。
[0012]在本發(fā)明的一實施例中,上述處理器還包括第三核心,而所述方法還包括下列步驟:藉由第三核心運行另一程序;在第三核心運行另一程序的期間,藉由第一核心利用追蹤模塊來追蹤第三核心,以獲取第三核心運行另一程序而產(chǎn)生的另一原始執(zhí)行數(shù)據(jù);儲存關(guān)聯(lián)于另一程序的另一原始執(zhí)行數(shù)據(jù)。
[0013]從另一觀點來看,本發(fā)明提出一種用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其包括相互耦接的存儲器與處理器,此處理器包括第一核心以及第二核心。此存儲器儲存操作系統(tǒng)與追蹤模塊。第一核心運行操作系統(tǒng),第二核心運行程序。在第二核心運行程序的期間,第一核心利用追蹤模塊來追蹤第二核心的執(zhí)行狀態(tài),以獲取第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù)。第一核心將關(guān)聯(lián)于程序的原始執(zhí)行數(shù)據(jù)傳送至儲存裝置,以儲存原始執(zhí)行數(shù)據(jù)。
[0014]本發(fā)明還提出一種用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),該用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng)包括:一存儲器,該存儲器儲存一操作系統(tǒng)與一追蹤模塊;一第一核心,該第一核心耦接該存儲器并運行該操作系統(tǒng);以及一第二核心,該第二核心耦接該存儲器并運行一程序,其中,在該第二核心運行該程序的期間,該第一核心利用該追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù),其中該第一核心將關(guān)聯(lián)于該程序的該原始執(zhí)行數(shù)據(jù)傳送至一儲存裝置,以儲存該原始執(zhí)行數(shù)據(jù)。
[0015]基于上述,在本發(fā)明的實施例中,在第二核心運行程序的期間,運行操作系統(tǒng)的第一核心可利用追蹤模塊來追蹤第二核心的執(zhí)行狀態(tài),以獲取第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù)。也就是說,多核心處理器里的第一核心經(jīng)配置而運行操作系統(tǒng),多核心處理器里的第二核心經(jīng)配置而運行應(yīng)用程序或驅(qū)動程序,且第一核心還經(jīng)配置而用來追蹤與記錄第二核心在運行程序期間所提取(fetch)的指令、執(zhí)行上述指令所產(chǎn)生的參數(shù)以及寄存器的存取狀態(tài)等原始執(zhí)行數(shù)據(jù)。
[0016]為讓本發(fā)明的上述特征和優(yōu)點能更明顯易懂,下文特舉實施例,并配合所附的附圖作詳細說明如下。
【附圖說明】
[0017]圖1是依照本發(fā)明一實施例所繪示的多核心處理系統(tǒng)的示意圖。
[0018]圖2是依照本發(fā)明一實施例所繪示的一種用于追蹤程序執(zhí)行狀態(tài)的方法的流程圖。
[0019]圖3是依照本發(fā)明一實施例所繪示的多核心處理系統(tǒng)的示意圖。
[0020]圖4是依照本發(fā)明一實施例所繪示的一種用于追蹤程序執(zhí)行狀態(tài)的方法的流程圖。
[0021]圖5是依照本發(fā)明一實施例所繪示的用于追蹤程序執(zhí)行狀態(tài)的方法的示意圖。
[0022]主要組件符號說明:
[0023]10、50、70多核心處理系統(tǒng)
[0024]100存儲器
[0025]10a操作系統(tǒng)
[0026]100b、100d程序
[0027]10c追蹤模塊
[0028]200、200a處理器
[0029]210第一核心
[0030]220第二核心
[0031]211控制單元
[0032]212算術(shù)邏輯單元
[0033]213寄存器列
[0034]221控制單元
[0035]222算術(shù)邏輯單元
[0036]223寄存器列
[0037]300儲存裝置
[0038]300a、300b原始執(zhí)行數(shù)據(jù)
[0039]800程序語言轉(zhuǎn)換模塊
[0040]900被追蹤程序代碼
[0041]230第三核心
[0042]S201?S204本發(fā)明一實施例所述的用于追蹤程序執(zhí)行狀態(tài)的方法的各步驟
[0043]S401?S409本發(fā)明一實施例所述的用于追蹤程序執(zhí)行狀態(tài)的方法的各步驟
【具體實施方式】
[0044]在本案說明書全文(包括權(quán)利要求書)中所使用的“耦接” 一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接于第二裝置,則應(yīng)該被解釋成該第一裝置可以直接連接于該第二裝置,或者該第一裝置可以通過其他裝置或某種連接手段而間接地連接至該第二裝置。另外,凡可能之處,在附圖及實施方式中使用相同標號的組件/構(gòu)件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的組件/構(gòu)件/步驟可以相互參照相關(guān)說明。
[0045]圖1是依照本發(fā)明一實施例所繪示的多核心處理系統(tǒng)的示意圖。請參照圖1,本實施例的多核心處理系統(tǒng)10包括存儲器100、處理器200以及儲存裝置300,而處理器200耦接存儲器100以及儲存裝置300。
[0046]存儲器100例如是隨機存取存儲器(Random Access Memory,RAM)、只讀存儲器(Read-Only Memory, ROM)、閃存(Flash memory)或其他類型的儲存媒介,本發(fā)明對此并不限制。存儲器100儲存有軟件組件,以供處理器200存取并執(zhí)行。在本實施例中,存儲器100儲存有操作系統(tǒng)100a、程序10b以及追蹤模塊100c。操作系統(tǒng)10a是一種管理計算器裝置的硬件與軟件資源的程序,例如是Iinux操作系統(tǒng),但本發(fā)明并不以此為限。
[0047]程序10b可以是應(yīng)用程序或硬件設(shè)備的驅(qū)動程序。舉例來說,程序10b可以是通用串行總線(Universal Serial Bus, USB)傳輸接口的驅(qū)動程序,程序10b也可以是具有音樂播放功能的應(yīng)用程序,但本發(fā)明并不以此為限。另外需要說明的是,在本實施例中,操作系統(tǒng)10a與程序10b皆儲存于存儲器100之中,但本發(fā)明并不以此為限。在其他實施例中,操作系統(tǒng)10a與程序10b可分別儲存于相異的儲存媒介之中。舉例來說,操作系統(tǒng)10a可儲存于系統(tǒng)存儲器當中,而程序10b可儲存于內(nèi)接硬盤或外接硬盤當中。在本實施例中,追蹤模塊10c可以是儲存于存儲器100里的軟件程序或指令,用來追蹤被處理器200執(zhí)行的程序100b。
[0048]處理器200為多核心處理器并且包括多個核心(core),且本發(fā)明對于處理器200里核心的數(shù)量并無限制。只是,為了清楚說明本發(fā)明,本實施例將以雙核心處理器為例進行說明,但本發(fā)明并不以此為限。處理器200包括第一核心210以及第二核心220。第一核心210以及第二核心220例如是ARM公司開發(fā)的ARM、Hitachi公司開發(fā)的H8/300、IBM公司開發(fā)的 System/370、Intel 公司開發(fā)的 X86 及 X86_64、Motorola 公司開發(fā)的 Motorola68000、MIPS公司開發(fā)的MIPS、HP公司開發(fā)的PA-RISC等等,在此并不限制其范圍。
[0049]第一核心210包括控制單元(control unit,CU) 211、算術(shù)邏輯單元(ArithmeticLogic Unit,ALU) 212以及寄存器列213??刂茊卧?11負責(zé)控制數(shù)據(jù)流與指令流,算術(shù)邏輯單元213負責(zé)算術(shù)運算與邏輯運算。簡單來說,第一核心210藉由控制單元211提取指令與傳輸數(shù)據(jù),算術(shù)邏輯單元213依據(jù)控制單元211所提取的指令進行運算與處理。寄存器列213可以包括多個寄存器,是第一核心210用來暫時存放數(shù)據(jù)與記錄執(zhí)行狀態(tài)的地方。舉例來說,寄存器列213可包括累加器、地址寄存器、指令寄存器、程序計數(shù)器或標記寄存器等等,本發(fā)明對此不限制。
[0050]相似的,第二核心220包括控制單元221、算術(shù)邏輯單元222以及寄存器列223??刂茊卧?21、算術(shù)邏輯單元222以及寄存器列223的功能分別與控制單元211、算術(shù)邏輯單元212以及寄存器列213相同或相似,在此不再贅述。
[0051]儲存裝置300耦接處理器200,以供處理器200進行數(shù)據(jù)的存取。儲存裝置300可以是內(nèi)部儲存裝置或外部儲存裝置,所謂的內(nèi)部儲存裝置代表與處理器200設(shè)置于同一電子裝置內(nèi)的儲存設(shè)備,所謂的外部儲存裝置代表與處理器200設(shè)置于相異的電子裝置內(nèi)的儲存設(shè)備。舉例來說,儲存裝置300可以是USB隨身盤或與處理器200設(shè)置于同一電子裝置內(nèi)的閃存(NAND flash)。
[0052]圖2是依照本發(fā)明一實施例所繪示的一種用于追蹤程序執(zhí)行狀態(tài)的方法的流程圖。本實施例的方法適用于圖1所示的多核心處理系統(tǒng)10,以下即搭配圖1與圖2所示的各模塊與組件來說明本實施例的詳細步驟。
[0053]在步驟S201,提供處理器200,其中此處理器200包括第一核心210與第二核心220。之后,在步驟S202,第一核心210運行操作系統(tǒng)100a,并且第二核心220運行程序10b0也就是說,第一核心210與第二核心220分別執(zhí)行不同的任務(wù)。第一核心210藉由運行操作系統(tǒng)10a來管理整個系統(tǒng)的硬件與軟件資源,第二核心220藉由運行程序10b來完成特定的功能。
[0054]在步驟S203,在第二核心220運行程序10b的期間,第一核心210利用追蹤模塊10c來追蹤第二核心220的執(zhí)行狀態(tài),以獲取第二核心220運行程序10b而產(chǎn)生的原始執(zhí)行數(shù)據(jù)300a。進一步來說,當?shù)诙诵?20執(zhí)行程序10b時,第二核心220的控制單元221從存儲器100提取記錄于程序10b內(nèi)的指令,并解碼這些指令成為算術(shù)邏輯單元212可以處理的運算。在本實施例中,第一核心210執(zhí)行追蹤模塊10c來追蹤第二核心運行程序10b的執(zhí)行狀態(tài)。詳細來說,在第二核心220運行程序10b的過程中,追蹤模塊10c將寄存器列223中被第二核心220使用過的寄存器與這些寄存器的內(nèi)部數(shù)據(jù)記錄下來。舉例來說,藉由記錄指令寄存器里的內(nèi)容,第二核心220曾經(jīng)執(zhí)行過的指令可以被完整的記錄至原始執(zhí)行數(shù)據(jù)之中。在步驟S204,儲存裝置300儲存關(guān)聯(lián)于程序10b的原始執(zhí)行數(shù)據(jù)300a。換言之,第一核心210將關(guān)聯(lián)于程序10b的原始執(zhí)行數(shù)據(jù)300a傳送至儲存裝置300,以儲存原始執(zhí)行數(shù)據(jù)300a?;?,通過原始執(zhí)行數(shù)據(jù)300a的記錄,程序設(shè)計人員甚至可發(fā)現(xiàn)程序編譯器無法發(fā)現(xiàn)的錯誤,像是存儲器地址的讀寫錯誤等。
[0055]然而,本發(fā)明的實現(xiàn)方式不限于上述說明,可以對于實際的需求而酌予變更上述實施例的內(nèi)容。例如,在本發(fā)明的其他實施例中,可將屬于低級語言格式的原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為高級語言格式,好讓程序設(shè)計人員可以更快速且容易的了解第二核心運行程序的實際執(zhí)行狀態(tài)。再者,追蹤模塊也可將寄存器列中的地址寄存器里的數(shù)據(jù)記錄下來,而產(chǎn)生包括存儲器地址數(shù)據(jù)的原始執(zhí)行數(shù)據(jù),從而獲取將程序執(zhí)行期間的存儲器地址的讀寫狀態(tài)。此夕卜,通過控制第一核心與第二核心的狀態(tài)轉(zhuǎn)換,可避免在第一核心尚未執(zhí)行到追蹤模塊之前第二核心就已經(jīng)執(zhí)行程序而導(dǎo)致無法完整記錄到程序的被執(zhí)行狀態(tài)。以下則舉一實施例詳細說明。
[0056]圖3是依照本發(fā)明一實施例所繪示的多核心處理系統(tǒng)的示意圖。圖4是依照本發(fā)明一實施例所繪示的一種用于追蹤程序執(zhí)行狀態(tài)的方法的流程圖。需先說明的是,本實施例的多核心處理系統(tǒng)50還包括程序語言轉(zhuǎn)換模塊800,程序語言轉(zhuǎn)換模塊800可由軟件組件、硬件組件或其組合的實現(xiàn)方式而得,在此不加以限制。軟件組件例如是原始碼、應(yīng)用軟件等軟件程序等。硬件組件例如是中央處理單元,或是其他可程序化的一般用途或特殊用途的硬件電路。
[0057]請參照圖3與圖4,在步驟S401,提供一處理器,其中處理器包括第一核心210與第二核心220。在步驟S402,初始化第一核心210以及第二核心220,致使第一核心210處于執(zhí)行狀態(tài)(run state)且第二核心220處于準備狀態(tài)(ready state)。也就是說,在第一核心210執(zhí)行操作系統(tǒng)10a以及第二核心220執(zhí)行程序10b之前,第一核心210執(zhí)行硬件初始化并且處于執(zhí)行狀態(tài)且第二核心220執(zhí)行硬件初始化并且處于準備狀態(tài)。
[0058]在步驟S403,當?shù)谝缓诵?10處于執(zhí)行狀態(tài)時,藉由第一核心210對操作系統(tǒng)10a執(zhí)行初始化程序并向操作系統(tǒng)10a注冊追蹤模塊100c。如此,操作系統(tǒng)10a可將追蹤模塊10c排入第一核心210將要執(zhí)行的任務(wù)內(nèi)。在第一核心210、操作系統(tǒng)10a以及追蹤模塊10c皆準備就緒的情況下,在步驟S404,將第二核心220從準備狀態(tài)轉(zhuǎn)換為執(zhí)行狀態(tài)。在步驟S405,在第二核心運行程序10b的期間,藉由第一核心210利用追蹤模塊10c來追蹤第二核心220的執(zhí)行狀態(tài),以獲取第二核心220運行程序10b而產(chǎn)生的原始執(zhí)行數(shù)據(jù) 300a。
[0059]在步驟S406,將屬于機械語言格式的原始執(zhí)行數(shù)據(jù)300a轉(zhuǎn)換為屬于低級語言格式的原始執(zhí)行數(shù)據(jù)300a。進一步來說,第二核心220所執(zhí)行的程序10b中的指令已經(jīng)由編碼成為機械語言格式,也就是“O”與“ I ”的組合序列?;?,追蹤模塊10c可將屬于機械語言格式的原始執(zhí)行數(shù)據(jù)300a先轉(zhuǎn)換為屬于低級語言格式的原始執(zhí)行數(shù)據(jù)300a,像是將屬于二進制序列的原始執(zhí)行數(shù)據(jù)300a轉(zhuǎn)換為帶有簡易指令的匯編語言。
[0060]之后,在步驟S407,儲存屬于低級語言格式的原始執(zhí)行數(shù)據(jù)300a于儲存裝置300中。在步驟S408,提供程序語言轉(zhuǎn)換模塊800。在步驟S409,利用程序語言轉(zhuǎn)換模塊800將原始執(zhí)行數(shù)據(jù)300a轉(zhuǎn)換為屬于高級語言格式的被追蹤程序代碼900。程序語言轉(zhuǎn)換模塊800可將屬于低級語言格式的原始執(zhí)行數(shù)據(jù)300a轉(zhuǎn)換為高級語言格式的被追蹤程序代碼900。低級語言格式例如是匯編語言(assembly language)等,而高級語言格式例如是C語言或C++語言等。也就是說,在本實施例中,原始執(zhí)行數(shù)據(jù)300a可以以匯編程序代碼的樣式儲存于儲存裝置300之中,當程序設(shè)計人員想要了解程序10b的執(zhí)行狀態(tài)時,程序語言轉(zhuǎn)換模塊800可將原始執(zhí)行數(shù)據(jù)300a轉(zhuǎn)換為屬于高級語言格式的被追蹤程序代碼900。如此,程序設(shè)計人員可依據(jù)更易讀的被追蹤程序代碼900來了解第二核心220執(zhí)行程序10b的執(zhí)行歷程。
[0061]雖然上述實施例皆以第一核心與第二核心為例進行說明,但本發(fā)明并不限制于此。在其他實施例中,第一核心可利用追蹤模塊來追蹤兩個以上的程序分別被相異的處理核心運行的執(zhí)行狀態(tài)。圖5是依照本發(fā)明一實施例所繪示的用于追蹤程序執(zhí)行狀態(tài)的方法的示意圖。請參照圖5,除了第一核心220以及第二核心230,本實施例的處理器200a還包括第三核心230。在本實施例中,第一核心210執(zhí)行追蹤模塊100c,以分別追蹤第二核心220運行程序10b以及第三核心230運行程序10d的寄存器存取狀態(tài)與數(shù)據(jù)。
[0062]相似地,第二核心220運行程序100b。在第二核心220運行程序10b的期間,第一核心210利用追蹤模塊10c來追蹤第二核心220,以獲取第二核心220運行程序10b而產(chǎn)生的原始執(zhí)行數(shù)據(jù)300a。另一方面,第三核心230運行程序100d。在第三核心230運行程序10d的期間,藉由第一核心210利用追蹤模塊10c來追蹤第三核心230,以獲取第三核心230運行程序10d而產(chǎn)生的原始執(zhí)行數(shù)據(jù)300b。如此,第一核心210可將關(guān)聯(lián)于程序10b的原始執(zhí)行數(shù)據(jù)300a以及關(guān)聯(lián)于程序10d的原始執(zhí)行數(shù)據(jù)300b傳送至該儲存裝置,以儲存原始執(zhí)行數(shù)據(jù)300a以及原始執(zhí)行數(shù)據(jù)300b。
[0063]綜上所述,在本發(fā)明的實施例中,多核心處理器里的第一核心經(jīng)配置而運行操作系統(tǒng),多核心處理器里的第二核心經(jīng)配置而運行應(yīng)用程序或驅(qū)動程序,且第一核心還經(jīng)配置而用來追蹤與記錄第二核心在運行程序期間所提取的指令、執(zhí)行上述指令所產(chǎn)生的參數(shù)以及寄存器的存取狀態(tài)等原始執(zhí)行數(shù)據(jù)。如此,程序設(shè)計人員可依據(jù)完整的原始執(zhí)行數(shù)據(jù)而得知程序的詳細執(zhí)行歷程,甚至可從完整的原始執(zhí)行數(shù)據(jù)發(fā)現(xiàn)程序編譯器無法發(fā)現(xiàn)的錯誤,從而提升軟件程序開發(fā)上的便利性。
[0064]雖然本發(fā)明已以實施例公開如上,然而其并非用以限定本發(fā)明,任何所屬技術(shù)領(lǐng)域中的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,應(yīng)當可作些許的更動與潤飾,故本發(fā)明的保護范圍應(yīng)當視所附的權(quán)利要求書的范圍所界定者為準。
【主權(quán)項】
1.一種用于追蹤程序執(zhí)行狀態(tài)的方法,該用于追蹤程序執(zhí)行狀態(tài)的方法包括: 提供一處理器,其中該處理器包括第一核心與第二核心; 藉由該第一核心運行一操作系統(tǒng),并藉由該第二核心運行一程序; 在該第二核心運行該程序的期間,藉由該第一核心利用一追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù);以及 儲存關(guān)聯(lián)于該程序的該原始執(zhí)行數(shù)據(jù)。2.如權(quán)利要求1所述的用于追蹤程序執(zhí)行狀態(tài)的方法,其中在藉由該第一核心運行該操作系統(tǒng),并藉由該第二核心運行該程序的步驟之前,所述方法還包括: 初始化該第一核心以及該第二核心,致使該第一核心處于執(zhí)行狀態(tài)且該第二核心處于準備狀態(tài);以及 當該第一核心處于執(zhí)行狀態(tài)時,藉由該第一核心對該操作系統(tǒng)執(zhí)行一初始化程序并向該操作系統(tǒng)注冊該追蹤模塊。3.如權(quán)利要求2所述的用于追蹤程序執(zhí)行狀態(tài)的方法,其中在當該第一核心處于執(zhí)行狀態(tài)時,藉由該第一核心對該操作系統(tǒng)執(zhí)行該初始化程序并向該操作系統(tǒng)注冊該追蹤模塊的步驟之后,所述方法還包括: 將該第二核心從該準備狀態(tài)轉(zhuǎn)換為該執(zhí)行狀態(tài)。4.如權(quán)利要求1所述的用于追蹤程序執(zhí)行狀態(tài)的方法,其中儲存該原始執(zhí)行數(shù)據(jù)的步驟包括: 將屬于機械語言格式的該原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于低級語言格式的該原始執(zhí)行數(shù)據(jù);以及 儲存屬于該低級語言格式的該原始執(zhí)行數(shù)據(jù)于一儲存裝置中。5.如權(quán)利要求1所述的用于追蹤程序執(zhí)行狀態(tài)的方法,其中在該第二核心運行該程序的期間,藉由該第一核心利用該追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù)的步驟包括: 在該第二核心運行該程序的期間,藉由該第二核心的一寄存器依序記錄關(guān)聯(lián)于該程序的至少一指令:以及 藉由該第一核心通過該追蹤模塊將該至少一指令記錄至該原始數(shù)據(jù)中。6.如權(quán)利要求1所述的用于追蹤程序執(zhí)行狀態(tài)的方法,所述方法還包括: 提供一程序語言轉(zhuǎn)換模塊;以及 利用該程序語言轉(zhuǎn)換模塊將該原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于高級語言格式的被追蹤程序代碼。7.如權(quán)利要求1所述的用于追蹤程序執(zhí)行狀態(tài)的方法,其中該處理器還包括一第三核心,所述方法還包括: 藉由該第三核心運行另一程序; 在該第三核心運行該另一程序的期間,藉由該第一核心利用該追蹤模塊來追蹤該第三核心,以獲取該第三核心運行該另一程序而產(chǎn)生的另一原始執(zhí)行數(shù)據(jù);以及 儲存關(guān)聯(lián)于該另一程序的該另一原始執(zhí)行數(shù)據(jù)。8.一種用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),該用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng)包括: 一存儲器,該存儲器儲存一操作系統(tǒng)與一追蹤模塊; 一第一核心,該第一核心耦接該存儲器并運行該操作系統(tǒng);以及 一第二核心,該第二核心耦接該存儲器并運行一程序, 其中,在該第二核心運行該程序的期間,該第一核心利用該追蹤模塊來追蹤該第二核心的執(zhí)行狀態(tài),以獲取該第二核心運行該程序而產(chǎn)生的原始執(zhí)行數(shù)據(jù), 其中該第一核心將關(guān)聯(lián)于該程序的該原始執(zhí)行數(shù)據(jù)傳送至一儲存裝置,以儲存該原始執(zhí)行數(shù)據(jù)。9.如權(quán)利要求8所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其中該第二核心包括寄存器,在該第二核心運行該程序的期間,該寄存器依序記錄關(guān)聯(lián)于該程序的至少一指令,而該第一核心通過該追蹤模塊將該至少一指令記錄至該原始數(shù)據(jù)中。10.如權(quán)利要求8所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其中在該第一核心執(zhí)行該操作系統(tǒng)以及該第二核心執(zhí)行該程序之前,該第一核心執(zhí)行硬件初始化并且處于執(zhí)行狀態(tài)且該第二核心執(zhí)行硬件初始化并且處于準備狀態(tài), 其中當該第一核心處于該執(zhí)行狀態(tài),該第一核心對該操作系統(tǒng)執(zhí)行一初始化程序并向該操作系統(tǒng)注冊該追蹤模塊。11.如權(quán)利要求9所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其中在該第一核心對該操作系統(tǒng)執(zhí)行該初始化程序并向該操作系統(tǒng)注冊該追蹤模塊之后,該第二核心從該準備狀態(tài)轉(zhuǎn)換為該執(zhí)行狀態(tài)。12.如權(quán)利要求8所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其中該第一核心將屬于機械語言格式的該原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于低級語言格式的該原始執(zhí)行數(shù)據(jù)。13.如權(quán)利要求10所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),其中該儲存裝置為一外部儲存裝置或一內(nèi)部儲存裝置。14.如權(quán)利要求8所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),還包括: 一程序語言轉(zhuǎn)換模塊,該程序語言轉(zhuǎn)換模塊耦接該儲存裝置,將該原始執(zhí)行數(shù)據(jù)轉(zhuǎn)換為屬于高級語言格式的被追蹤程序代碼。15.如權(quán)利要求8所述的用于追蹤程序執(zhí)行狀態(tài)的多核心處理系統(tǒng),還包括: 一第三核心,該第三核心運行另一程序, 其中,在該第三核心運行該另一程序的期間,該第一核心利用該追蹤模塊來追蹤該第三核心,以獲取該第三核心運行該另一程序而產(chǎn)生的另一原始執(zhí)行數(shù)據(jù), 其中,該第一核心將關(guān)聯(lián)于該另一程序的該另一原始執(zhí)行數(shù)據(jù)傳送至該儲存裝置,以儲存該另一原始執(zhí)行數(shù)據(jù)。
【文檔編號】G06F11/34GK106033385SQ201510120996
【公開日】2016年10月19日
【申請日】2015年3月19日
【發(fā)明人】陳敬融
【申請人】啟碁科技股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1