欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

反向調(diào)試方法、反向調(diào)試系統(tǒng)、主機(jī)及單板與流程

文檔序號(hào):11964553閱讀:219來源:國知局
反向調(diào)試方法、反向調(diào)試系統(tǒng)、主機(jī)及單板與流程
本發(fā)明涉及通信領(lǐng)域,尤其涉及反向調(diào)試方法、反向調(diào)試系統(tǒng)、主機(jī)及單板。

背景技術(shù):
反向調(diào)試是指在程序調(diào)試過程中,可以對程序執(zhí)行反向的單步(源碼/匯編級(jí))、continue等調(diào)試命令,就好像程序能夠倒過來運(yùn)行的一種調(diào)試方法。反向調(diào)試作為普通正向調(diào)試的補(bǔ)充,可以提高用戶的調(diào)試效率。比如某段代碼進(jìn)入了異常,如果沒有反向調(diào)試,可能需要重新啟動(dòng)程序,然后單步調(diào)試去找到原因,如果有了反向調(diào)試功能,進(jìn)入異常后不需要重新啟動(dòng)程序,反向就能夠找到出問題的代碼位置。目前已經(jīng)有一些軟件支持反向調(diào)試,但目前還沒有一個(gè)能夠應(yīng)用于數(shù)字信號(hào)處理(DigitalSignalProcessing,DSP)領(lǐng)域單板上反向調(diào)試的方法。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供反向調(diào)試方法、反向調(diào)試系統(tǒng)、主機(jī)及單板,可在程序運(yùn)行在單板上時(shí)對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。本發(fā)明第一方面提供一種反向調(diào)試方法,其可包括:當(dāng)主機(jī)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能;所述主機(jī)指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;所述主機(jī)指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。結(jié)合第一方面,在第一種可行的實(shí)施方式中,所述啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能包括:啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。結(jié)合第一方面,在第二種可行的實(shí)施方式中,所述啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能包括:啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,將所述代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。結(jié)合第一方面的第一種可行的實(shí)施方式,在第三種可行的實(shí)施方式中,所述獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡,包括:獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,獲取所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。結(jié)合第一方面的第二種可行的實(shí)施方式,在第四種可行的實(shí)施方式中,所述獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡,包括:獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,獲取所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。本發(fā)明第二方面提供一種主機(jī),其可包括調(diào)試控制模塊和指令翻譯模塊,還包括程序跟蹤模塊和數(shù)據(jù)跟蹤模塊中至少一種:調(diào)試控制模塊,用于接收根據(jù)用戶輸入的指令確定需調(diào)試的單板上的代碼段,并記錄初始寄存器的值,啟動(dòng)所述程序跟蹤模塊、數(shù)據(jù)跟蹤模塊和指令翻譯模塊,以及指示所述單板正向運(yùn)行所述代碼段,以及用于指示所述單板停止運(yùn)行所述代碼段;程序跟蹤模塊,用于啟動(dòng)所述單板上的程序跟蹤功能,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡;數(shù)據(jù)跟蹤模塊,用于啟動(dòng)所述單板上的數(shù)據(jù)跟蹤功能,并獲取所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡;指令翻譯模塊,用于根據(jù)所述調(diào)試控制模塊記錄的初始寄存器的值和所述調(diào)試控制模塊獲取的用戶輸入的調(diào)試指示信息和所述程序跟蹤模塊獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或所述數(shù)據(jù)跟蹤模塊獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;所述調(diào)試控制模塊還用于指示所述單板運(yùn)行所述指令翻譯模塊生成的反向調(diào)試指令,以對所述代碼段進(jìn)行反向調(diào)試。結(jié)合第二方面,在第一種可行的實(shí)施方式中,所述程序跟蹤模塊具體用于啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,所述數(shù)據(jù)跟蹤模塊具體用于啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。結(jié)合第二方面的第一種可行的實(shí)施方式,在第二種可行的實(shí)施方式中,所述程序跟蹤模塊具體用于啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,所述數(shù)據(jù)跟蹤模塊具體用于將所述單板上的代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。結(jié)合第二方面的第一種可行的實(shí)施方式,在第三種可行的實(shí)施方式中,所述程序跟蹤模塊具體用于獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,所述數(shù)據(jù)跟蹤模塊具體用于獲取所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。結(jié)合第二方面的第二種可行的實(shí)施方式,在第四種可行的實(shí)施方式中,所述程序跟蹤模塊具體用于獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,所述數(shù)據(jù)跟蹤模塊具體用于獲取所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。本發(fā)明第三方面提供一種反向調(diào)試方法,其可包括:當(dāng)需調(diào)試的代碼運(yùn)行前,當(dāng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能啟動(dòng)之后,在所述代碼段正向運(yùn)行時(shí),搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;將所述搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡發(fā)送給所述主機(jī),以便所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。結(jié)合第三方面,在第一種可行的實(shí)施方式中,在所述代碼段正向運(yùn)行之前,還包括:根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。結(jié)合第三方面,在第二種可行的實(shí)施方式中,在所述代碼段正向運(yùn)行之前,還包括:根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令將所述代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。結(jié)合第三方面的第一種可行的實(shí)施方式,在第三種可行的實(shí)施方式中,所述搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡包括:所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。結(jié)合第三方面的第二種可行的實(shí)施方式,在第四種可行的實(shí)施方式中,所述搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡包括:所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,運(yùn)行所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。本發(fā)明第四方面提供一種單板,其可包括:程序搜集模塊,用于搜集運(yùn)行的代碼段的程序軌跡;數(shù)據(jù)搜集模塊,用于搜集運(yùn)行的代碼段的數(shù)據(jù)軌跡;調(diào)試模塊,用于運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試,所述反向調(diào)試指令為所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成的代碼停止位置到目標(biāo)位置的反向調(diào)試指令。結(jié)合第四方面,在第一種可行的實(shí)施方式中,所述程序搜集模塊為用于程序跟蹤的程序搜集硬件模塊;所述數(shù)據(jù)搜集模塊為用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊或用于運(yùn)行break指令的軟件模塊,所述break指令用于替換所述代碼段的load/store指令,并用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。結(jié)合第四方面的第一種可行的實(shí)施方式,在第二種可行的實(shí)施方式中,所述單板還包括:程序跟蹤啟動(dòng)模塊,用于根據(jù)所述主機(jī)的指令啟動(dòng)所述程序搜集硬件模塊;數(shù)據(jù)跟蹤啟動(dòng)模塊,用于根據(jù)所述主機(jī)的指令啟動(dòng)所述數(shù)據(jù)搜集硬件模塊或用于運(yùn)行break指令的軟件模塊。本發(fā)明第五方面提供一種反向調(diào)試系統(tǒng),其可包括:主機(jī)和單板,其中所述主機(jī)為本發(fā)明各實(shí)施例中任一實(shí)施例所述的主機(jī);所述單板為本發(fā)明各實(shí)施例中任一實(shí)施例所述的單板。由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)主機(jī)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能;所述主機(jī)指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;所述主機(jī)指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。由此,本發(fā)明實(shí)施例實(shí)現(xiàn)了在程序運(yùn)行在單板上時(shí)通過主機(jī)指示單板對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。附圖說明圖1為本發(fā)明的反向調(diào)試方法的一實(shí)施例的流程示意圖;圖2為本發(fā)明的反向調(diào)試方法的另一實(shí)施例的流程示意圖;圖3為本發(fā)明的主機(jī)的一實(shí)施例的結(jié)構(gòu)組成示意圖;圖4為本發(fā)明的主機(jī)的另一實(shí)施例的結(jié)構(gòu)組成示意圖;圖5為本發(fā)明的單板的一實(shí)施例的結(jié)構(gòu)組成示意圖;圖6為本發(fā)明的單板的一實(shí)施例的結(jié)構(gòu)組成示意圖;圖7為本發(fā)明包括主機(jī)和單板兩側(cè)的流程的反向調(diào)試方法的一實(shí)施例的流程示意圖;圖8為本發(fā)明包括主機(jī)和單板兩側(cè)的流程的反向調(diào)試方法的另一實(shí)施例的流程示意圖。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。圖1為本發(fā)明的反向調(diào)試方法的一實(shí)施例的流程示意圖。如圖1所示,其可包括:步驟S110,當(dāng)主機(jī)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能。具體實(shí)現(xiàn)中,在步驟S110,主機(jī)可通過用戶輸入的指令確定需調(diào)試的單板上的代碼段。在一些可行的實(shí)施方式中,在步驟S110,可在接收到用戶輸入的反向調(diào)試啟動(dòng)命令(比如,initreversedebug命令)時(shí),啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能。在一些可行的實(shí)施方式中,單板上有專用于程序跟蹤的程序搜集硬件模塊,因此,在步驟S110,所述啟動(dòng)所述單板上的程序功能可包括:啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;具體實(shí)現(xiàn)中,單板上有專用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊,因此,在步驟S110,所述啟動(dòng)所述單板上的數(shù)據(jù)跟蹤功能可包括:啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。在一些可行的實(shí)施方式中,單板上沒有專用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊,此時(shí),在步驟S110所述啟動(dòng)所述單板上的數(shù)據(jù)跟蹤功能可包括:將所述代碼段的1oad/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。這樣,當(dāng)后續(xù)運(yùn)行break時(shí),便可通過軟件的方式進(jìn)行數(shù)據(jù)跟蹤并完成被替換的load/store指令的功能。步驟S111,所述主機(jī)指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡(PCTRACE)和/或數(shù)據(jù)軌跡(DATATRACE)?;诓襟ES110的處理方式的不同,在步驟S111也可有相應(yīng)的獲取數(shù)據(jù)軌跡和/或程序軌跡的方式。具體的,當(dāng)單板上有專用于程序跟蹤的程序搜集硬件模塊時(shí),在步驟S111,所述獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡可包括:獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;當(dāng)單板上有專用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊時(shí),在步驟S111,所述獲取所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡可包括:獲取所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。當(dāng)單板上沒有專用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊時(shí),在步驟S111,所述獲取所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡可包括:獲取所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。步驟S112,所述主機(jī)指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。具體實(shí)現(xiàn)中,在步驟S112,所述反向調(diào)試指示信息包括源碼單步反向調(diào)試、匯編碼單步反向調(diào)試,continue等調(diào)試命名中任一種。具體實(shí)現(xiàn)中,在步驟S112,所述反向調(diào)試指令根據(jù)程序軌跡和數(shù)據(jù)軌跡了解被修改的程序內(nèi)容,如果修改了內(nèi)存,則生成將停止位置的內(nèi)存值恢復(fù)到目標(biāo)位置的內(nèi)存值的反向調(diào)試指令,如果修改了寄存器則將停止位置的寄存器值恢復(fù)到目標(biāo)位置的寄存器值的反向調(diào)試指令。具體實(shí)現(xiàn)中,根據(jù)初始寄存器的值以及程序軌跡便可知道停止位置的寄存器的值以及目標(biāo)位置的寄存器的值。由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)主機(jī)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能;所述主機(jī)指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;所述主機(jī)指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。由此,本發(fā)明實(shí)施例實(shí)現(xiàn)了在程序運(yùn)行在單板上時(shí)通過主機(jī)指示單板對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。圖2為本發(fā)明的反向調(diào)試方法的另一實(shí)施例的流程示意圖。如圖2所示,其可包括:步驟S210,當(dāng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能啟動(dòng)之后,在所述代碼段正向運(yùn)行時(shí),搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;在一些可行的實(shí)施方式中,單板上有專用于程序跟蹤的程序搜集硬件模塊和專用于程序跟蹤的程序搜集硬件模塊,則在步驟S210之前,單板可根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。這樣,在步驟S210,可通過所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,通過所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。在一些可行的實(shí)施方式中,單板上有專用于程序跟蹤的程序搜集硬件模塊和但沒有專用于程序跟蹤的程序搜集硬件模塊,則在步驟S210之前,單板可根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令將所述代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。這樣,在步驟S210,可通過所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,通過所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。步驟S211,將所述搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡發(fā)送給所述主機(jī),以便所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;步驟S212,運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。具體實(shí)現(xiàn)中,在步驟S211,所述反向調(diào)試指示信息包括源碼單步反向調(diào)試、匯編碼單步反向調(diào)試,continue等調(diào)試命名中任一種。具體實(shí)現(xiàn)中,在步驟S211,所述反向調(diào)試指令根據(jù)程序軌跡和數(shù)據(jù)軌跡了解被修改的程序內(nèi)容,如果修改了內(nèi)存,則生成將停止位置的內(nèi)存值恢復(fù)到目標(biāo)位置的內(nèi)存值的反向調(diào)試指令,如果修改了寄存器則將停止位置的寄存器值恢復(fù)到目標(biāo)位置的寄存器值的反向調(diào)試指令。具體實(shí)現(xiàn)中,根據(jù)初始寄存器的值以及程序軌跡便可知道停止位置的寄存器的值以及目標(biāo)位置的寄存器的值。由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)需調(diào)試的代碼運(yùn)行前,采集初始寄存器的值并發(fā)送給所述主機(jī);當(dāng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能啟動(dòng)之后,在所述代碼段正向運(yùn)行時(shí),搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;將所述搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡發(fā)送給所述主機(jī),以便所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。由此,本發(fā)明實(shí)施例實(shí)現(xiàn)了在程序運(yùn)行在單板上時(shí)通過主機(jī)指示單板對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。相應(yīng)的,本發(fā)明實(shí)施例還提供了可用于實(shí)施本發(fā)明方法實(shí)施例的主機(jī)及單板的裝置實(shí)施例,下面結(jié)合附圖對本發(fā)明實(shí)施例的主機(jī)及單板的結(jié)構(gòu)組成進(jìn)行舉例說明。圖3為本發(fā)明的主機(jī)(用于調(diào)試人員遠(yuǎn)程操作單板的設(shè)備)的一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖3所示,其可包括:調(diào)試控制模塊31和指令翻譯模塊35、還可包括程序跟蹤模塊32和數(shù)據(jù)跟蹤模塊33中至少一種,其中:調(diào)試控制模塊31,用于接收根據(jù)用戶輸入的指令確定需調(diào)試的單板上的代碼段,并記錄初始寄存器的值,啟動(dòng)所述程序跟蹤模塊、數(shù)據(jù)跟蹤模塊和指令翻譯模塊,以及指示所述單板正向運(yùn)行所述代碼段,以及用于指示所述單板停止運(yùn)行所述代碼段;程序跟蹤模塊32,用于啟動(dòng)所述單板上的程序跟蹤功能,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡;數(shù)據(jù)跟蹤模塊33,用于啟動(dòng)所述單板上的數(shù)據(jù)跟蹤功能,并獲取所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡;指令翻譯模塊34,用于根據(jù)所述調(diào)試控制模塊31記錄的初始寄存器的值和所述調(diào)試控制模塊31獲取的用戶輸入的調(diào)試指示信息和所述程序跟蹤模塊32獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或所述數(shù)據(jù)跟蹤模塊33獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;所述調(diào)試控制模塊31還用于指示所述單板運(yùn)行所述指令翻譯模塊34生成的反向調(diào)試指令,以對所述代碼段進(jìn)行反向調(diào)試。具體實(shí)現(xiàn)中,單板上有專用于程序跟蹤的程序搜集硬件模塊,此時(shí),所述程序跟蹤模塊32具體可用于啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;并獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡。在一些可行的實(shí)施方式中,單板上有專用于程序跟蹤的數(shù)據(jù)搜集硬件模塊,此時(shí),所述數(shù)據(jù)跟蹤模塊具體可用于啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊,并獲取所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。在一些可行的實(shí)施方式中,單板上沒有專用于程序跟蹤的數(shù)據(jù)搜集硬件模塊,所述數(shù)據(jù)跟蹤模塊具體用于將所述單板上的代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能,并獲取所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。具體實(shí)現(xiàn)中,所述反向調(diào)試指示信息包括源碼單步反向調(diào)試、匯編碼單步反向調(diào)試,continue等調(diào)試命名中任一種。具體實(shí)現(xiàn)中,指令翻譯模塊34根據(jù)程序軌跡和數(shù)據(jù)軌跡了解被修改的程序內(nèi)容,如果修改了內(nèi)存,則生成將停止位置的內(nèi)存值恢復(fù)到目標(biāo)位置的內(nèi)存值的反向調(diào)試指令,如果修改了寄存器則將停止位置的寄存器值恢復(fù)到目標(biāo)位置的寄存器值的反向調(diào)試指令。具體實(shí)現(xiàn)中,根據(jù)初始寄存器的值以及程序軌跡便可知道停止位置的寄存器的值以及目標(biāo)位置的寄存器的值。由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)主機(jī)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能;所述主機(jī)指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;所述主機(jī)指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。由此,本發(fā)明實(shí)施例實(shí)現(xiàn)了在程序運(yùn)行在單板上時(shí)通過主機(jī)指示單板對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。圖4為本發(fā)明的主機(jī)(用于調(diào)試人員遠(yuǎn)程操作單板的設(shè)備)的另一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖4所示,其可包括:存儲(chǔ)器41和處理器42,其中處理器42調(diào)用存儲(chǔ)器41中存儲(chǔ)的程序,以執(zhí)行如下操作:當(dāng)確定需調(diào)試的單板上的代碼段后,在所述代碼段運(yùn)行前,記錄初始寄存器的值并啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能;指示所述單板正向運(yùn)行所述代碼段,并獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;指示所述單板停止運(yùn)行所述代碼段,根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令,并指示所述單板運(yùn)行所述反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。在一些可行的實(shí)施方式中,所述處理器42執(zhí)行啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能時(shí),具體執(zhí)行如下操作:啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。在一些可行的實(shí)施方式中,所述處理器42執(zhí)行啟動(dòng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能時(shí),具體執(zhí)行如下操作:啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,將所述代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。在一些可行的實(shí)施方式中,所述處理器42執(zhí)行獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡時(shí),具體執(zhí)行如下操作:獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,獲取所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。在一些可行的實(shí)施方式中,所述處理器42執(zhí)行獲取所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡時(shí),具體執(zhí)行如下操作:獲取所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,獲取所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。圖5為本發(fā)明的單板(用于運(yùn)行代碼段)的一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖5所示,其可包括:程序搜集模塊52、數(shù)據(jù)搜集模塊53和調(diào)試模塊54,其中:程序搜集模塊52,用于搜集運(yùn)行的代碼段的程序軌跡;數(shù)據(jù)搜集模塊53,用于搜集運(yùn)行的代碼段的數(shù)據(jù)軌跡;調(diào)試模塊54,用于運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試,所述反向調(diào)試指令為所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成的代碼停止位置到目標(biāo)位置的反向調(diào)試指令。在一些可行的實(shí)施方式中,所述程序搜集模塊52可為用于程序跟蹤的程序搜集硬件模塊;在一些可行的實(shí)施方式中,所述數(shù)據(jù)搜集模塊53可為用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊或用于運(yùn)行break指令的軟件模塊,所述break指令用于替換所述代碼段的load/store指令,并用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的單板還可包括程序跟蹤啟動(dòng)模塊(未圖示),用于根據(jù)主機(jī)的指令啟動(dòng)所述程序搜集硬件模塊;在一些可行的實(shí)施方式中,本發(fā)明實(shí)施例的單板還可包括數(shù)據(jù)跟蹤啟動(dòng)模塊(未圖示),用于根據(jù)所述主機(jī)的指令啟動(dòng)所述數(shù)據(jù)搜集硬件模塊或用于運(yùn)行break指令的軟件模塊。具體實(shí)現(xiàn)中,所述反向調(diào)試指示信息包括源碼單步反向調(diào)試、匯編碼單步反向調(diào)試,continue等調(diào)試命名中任一種。具體實(shí)現(xiàn)中,主機(jī)可根據(jù)程序軌跡和數(shù)據(jù)軌跡了解被修改的程序內(nèi)容,如果修改了內(nèi)存,則生成將停止位置的內(nèi)存值恢復(fù)到目標(biāo)位置的內(nèi)存值的反向調(diào)試指令,如果修改了寄存器則將停止位置的寄存器值恢復(fù)到目標(biāo)位置的寄存器值的反向調(diào)試指令。具體實(shí)現(xiàn)中,根據(jù)初始寄存器的值以及程序軌跡便可知道停止位置的寄存器的值以及目標(biāo)位置的寄存器的值。由上可見,在本發(fā)明的一些可行的實(shí)施方式中,當(dāng)需調(diào)試的代碼運(yùn)行前,采集初始寄存器的值并發(fā)送給所述主機(jī);當(dāng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能啟動(dòng)之后,在所述代碼段正向運(yùn)行時(shí),搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;將所述搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡發(fā)送給所述主機(jī),以便所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。由此,本發(fā)明實(shí)施例實(shí)現(xiàn)了在程序運(yùn)行在單板上時(shí)通過主機(jī)指示單板對單板上的程序進(jìn)行反向調(diào)試,給調(diào)試人員帶來極大地便利。圖6為本發(fā)明的單板(用于運(yùn)行代碼段)的一實(shí)施例的結(jié)構(gòu)組成示意圖。如圖6所示,其可包括:存儲(chǔ)器61和處理器62,所述處理器62調(diào)用存儲(chǔ)器61中存儲(chǔ)的程序,并執(zhí)行如下操作:當(dāng)需調(diào)試的代碼運(yùn)行前,當(dāng)所述單板上的程序和/或數(shù)據(jù)跟蹤功能啟動(dòng)之后,在所述代碼段正向運(yùn)行時(shí),搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡;將所述搜集的所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡發(fā)送給所述主機(jī),以便所述主機(jī)根據(jù)用戶輸入的反向調(diào)試指示信息和所述初始寄存器值和獲取的所述單板搜集的所述運(yùn)行的代碼段的程序軌跡和/或獲取的所述單板搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡生成代碼停止位置到目標(biāo)位置的反向調(diào)試指令;運(yùn)行所述主機(jī)發(fā)送的反向調(diào)試指令以對所述代碼段進(jìn)行反向調(diào)試。在一些可行的實(shí)施方式中,在所述代碼段正向運(yùn)行之前,所述處理器62還執(zhí)行如下操作:根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于數(shù)據(jù)跟蹤的數(shù)據(jù)搜集硬件模塊。在一些可行的實(shí)施方式中,在所述代碼段正向運(yùn)行之前,所述處理器62還執(zhí)行如下操作:根據(jù)所述主機(jī)的指令啟動(dòng)所述單板上用于程序跟蹤的程序搜集硬件模塊;和/或,根據(jù)所述主機(jī)的指令將所述代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。在一些可行的實(shí)施方式中,所述處理器62執(zhí)行搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡時(shí),具體執(zhí)行如下操作:所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,所述單板的數(shù)據(jù)搜集硬件模塊搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。在一些可行的實(shí)施方式中,所述處理器62執(zhí)行搜集所述運(yùn)行的代碼段的程序軌跡和/或數(shù)據(jù)軌跡時(shí),具體執(zhí)行如下操作:所述單板的程序搜集硬件模塊搜集的所述運(yùn)行的代碼段的程序軌跡;和/或,運(yùn)行所述單板的代碼段的break指令搜集的所述運(yùn)行的代碼段的數(shù)據(jù)軌跡。具體實(shí)現(xiàn)中,本發(fā)明實(shí)施例的主機(jī)和單板共同構(gòu)成反向調(diào)試系統(tǒng)。下面結(jié)合圖7和圖8對本發(fā)明的單板反向調(diào)試方法進(jìn)一步進(jìn)行詳細(xì)說明。圖7為本發(fā)明包括主機(jī)和單板兩側(cè)的流程的反向調(diào)試方法的一實(shí)施例的流程示意圖。如圖7所示,其可包括:步驟S701,主機(jī)的調(diào)試控制模塊接收用戶輸入指令確定需調(diào)試的單板上的代碼段,并接收用戶輸入的反向調(diào)試啟動(dòng)命名(比如,initreversedebug命令)確定啟動(dòng)反向調(diào)試。步驟S702,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的程序跟蹤模塊。步驟S703,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的數(shù)據(jù)跟蹤模塊。步驟S704,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的指令翻譯模塊。步驟S705,主機(jī)向單板發(fā)送獲取初始寄存器的值的請求。步驟S706,主機(jī)從單板獲取初始寄存器的值。步驟S707,主機(jī)的程序跟蹤模塊啟動(dòng)單板上的程序搜集硬件模塊。步驟S708,主機(jī)的數(shù)據(jù)跟蹤模塊啟動(dòng)單板上的數(shù)據(jù)搜集硬件模塊。步驟S709,主機(jī)的調(diào)試控制模塊接收用戶輸入的正向運(yùn)行所述需調(diào)試的代碼段的指令;步驟S710,主機(jī)的調(diào)試控制模塊指示所述單板正向運(yùn)行所述需調(diào)試的代碼段。步驟S711,單板上的程序搜集硬件模塊搜集所述正向運(yùn)行的需調(diào)試的代碼段的程序軌跡,并將搜集結(jié)果發(fā)送給主機(jī)的程序跟蹤模塊。步驟S712,單板上的數(shù)據(jù)搜集硬件模塊搜集所述正向運(yùn)行的需調(diào)試的代碼段的數(shù)據(jù)軌跡,并將搜集結(jié)果發(fā)送給主機(jī)的數(shù)據(jù)跟蹤模塊。步驟S713,主機(jī)的調(diào)試控制模塊接收用戶輸入的停止命令。步驟S714,主機(jī)的調(diào)試控制模塊指示所述單板停止運(yùn)行所述需調(diào)試的代碼段。步驟S715,主機(jī)的調(diào)試控制模塊接收用戶輸入的反向調(diào)試指示信息。步驟S716,所述主機(jī)的調(diào)試控制模塊根據(jù)所述反向調(diào)試指示信息生成反向等價(jià)指令并發(fā)給所述主機(jī)的指令翻譯模塊。步驟S717,所述主機(jī)的調(diào)試控制模塊將獲取的初始寄存器的值發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S718,所述主機(jī)的調(diào)試控制模塊將獲取的正向運(yùn)行的需調(diào)試的代碼段的程序軌跡發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S719,所述主機(jī)的調(diào)試控制模塊將獲取的正向運(yùn)行的需調(diào)試的代碼段的數(shù)據(jù)軌跡發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S720,所述指令翻譯模塊生成代碼停止位置到目標(biāo)位置(需要返回的位置)的反向調(diào)試指令。步驟S721,所述主機(jī)的指令翻譯模塊將生成的反向調(diào)試指令發(fā)送給所述主機(jī)的調(diào)制控制模塊。步驟S722,所述主機(jī)的調(diào)制控制模塊將所述反向調(diào)試指令發(fā)送給單板。步驟S723,所述單板運(yùn)行所述反向調(diào)試指令。步驟S724,所述單板將反向調(diào)試運(yùn)行結(jié)果反饋給主機(jī)的調(diào)制控制模塊。步驟S725,所述主機(jī)的調(diào)制控制模塊將反向調(diào)試運(yùn)行結(jié)果反饋給用戶。在本實(shí)施例中,單板通過硬件模塊搜集程序軌跡及數(shù)據(jù)軌跡。圖8為本發(fā)明包括主機(jī)和單板兩側(cè)的流程的反向調(diào)試方法的另一實(shí)施例的流程示意圖。如圖8所示,其可包括:步驟S801,主機(jī)的調(diào)試控制模塊接收用戶輸入指令確定需調(diào)試的單板上的代碼段,并接收用戶輸入的反向調(diào)試啟動(dòng)命名(比如,initreversedebug命令)確定啟動(dòng)反向調(diào)試。步驟S802,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的程序跟蹤模塊。步驟S803,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的數(shù)據(jù)跟蹤模塊。步驟S804,主機(jī)的調(diào)試控制模塊啟動(dòng)所述主機(jī)的指令翻譯模塊。步驟S805,主機(jī)向單板發(fā)送獲取初始寄存器的值的請求。步驟S806,主機(jī)從單板獲取初始寄存器的值。步驟S807,主機(jī)的程序跟蹤模塊啟動(dòng)單板上的程序搜集硬件模塊。步驟S808,主機(jī)的數(shù)據(jù)跟蹤模塊將所述單板上的代碼段的load/store指令替換為break指令,并指示所述break指令用于數(shù)據(jù)跟蹤和執(zhí)行被替換的load/store指令的功能。步驟S809,主機(jī)的調(diào)試控制模塊接收用戶輸入的正向執(zhí)行所述需調(diào)試的代碼段的指令;步驟S810,主機(jī)的調(diào)試控制模塊指示所述單板正向運(yùn)行所述需調(diào)試的代碼段。步驟S811,單板上的程序搜集硬件模塊搜集所述正向運(yùn)行的需調(diào)試的代碼段的程序軌跡,并將搜集結(jié)果發(fā)送給主機(jī)的程序跟蹤模塊。步驟S812,單板上運(yùn)行break指令,以搜集所述正向運(yùn)行的需調(diào)試的代碼段的數(shù)據(jù)軌跡,并將搜集結(jié)果發(fā)送給主機(jī)的數(shù)據(jù)跟蹤模塊。步驟S813,主機(jī)的調(diào)試控制模塊接收用戶輸入的停止命令。步驟S814,主機(jī)的調(diào)試控制模塊指示所述單板停止運(yùn)行所述需調(diào)試的代碼段。步驟S815,主機(jī)的調(diào)試控制模塊接收用戶輸入的反向調(diào)試指示信息。步驟S816,所述主機(jī)的調(diào)試控制模塊根據(jù)所述反向調(diào)試指示信息生成反向等價(jià)指令并發(fā)給所述主機(jī)的指令翻譯模塊。步驟S817,所述主機(jī)的調(diào)試控制模塊將獲取的初始寄存器的值發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S818,所述主機(jī)的調(diào)試控制模塊將獲取的正向運(yùn)行的需調(diào)試的代碼段的程序軌跡發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S819,所述主機(jī)的調(diào)試控制模塊將獲取的正向運(yùn)行的需調(diào)試的代碼段的數(shù)據(jù)軌跡發(fā)送給所述主機(jī)的指令翻譯模塊。步驟S820,所述指令翻譯模塊生成代碼停止位置到目標(biāo)位置(需要返回的位置)的反向調(diào)試指令。步驟S821,所述主機(jī)的指令翻譯模塊將生成的反向調(diào)試指令發(fā)送給所述主機(jī)的調(diào)制控制模塊。步驟S822,所述主機(jī)的調(diào)制控制模塊將所述反向調(diào)試指令發(fā)送給單板。步驟S823,所述單板運(yùn)行所述反向調(diào)試指令。步驟S824,所述單板將反向調(diào)試運(yùn)行結(jié)果反饋給主機(jī)的調(diào)制控制模塊。步驟S825,所述主機(jī)的調(diào)制控制模塊將反向調(diào)試運(yùn)行結(jié)果反饋給用戶。在本實(shí)施例中,單板通過硬件模塊搜集程序軌跡及數(shù)據(jù)軌跡。以上所列舉的僅為本發(fā)明較佳實(shí)施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
灵山县| 清水河县| 宝清县| 富蕴县| 禄劝| 清丰县| 洞头县| 大渡口区| 蓝山县| 天镇县| 南江县| 长宁县| 娱乐| 香格里拉县| 微山县| 盘锦市| 沅陵县| 钟祥市| 东至县| 边坝县| 景德镇市| 雷州市| 长治县| 滦平县| 鹤峰县| 特克斯县| 甘泉县| 博罗县| 汾西县| 皋兰县| 九龙县| 大丰市| 逊克县| 庆城县| 安康市| 巩留县| 尤溪县| 任丘市| 禹城市| 合江县| 伊宁市|