一種調(diào)試方法、多核處理器和調(diào)試設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種調(diào)試方法、多核處理器和調(diào)試設(shè)備。
【背景技術(shù)】
[0002]程序調(diào)試,是將編寫完成的計(jì)算機(jī)程序投入實(shí)際運(yùn)行前,用手工或編譯程序等方法進(jìn)行測(cè)試,修正語(yǔ)法錯(cuò)誤和邏輯錯(cuò)誤的過(guò)程。這是保證計(jì)算機(jī)信息系統(tǒng)正確性必不可少的步驟。所以編寫完成的計(jì)算機(jī)程序,必須送入計(jì)算機(jī)中進(jìn)行調(diào)試。
[0003]業(yè)界通常將運(yùn)行在內(nèi)核空間代碼稱為內(nèi)核態(tài)代碼,將運(yùn)行在用戶空間的代碼稱為用戶態(tài)代碼。當(dāng)前,在對(duì)內(nèi)核態(tài)代碼和用戶態(tài)代碼進(jìn)行調(diào)試時(shí),需要使用不同的調(diào)試平臺(tái)。需要明確的是,下述的目標(biāo)機(jī)是指被調(diào)試代碼運(yùn)行的物理主機(jī),宿主機(jī)是指調(diào)試器運(yùn)行的物理主機(jī)。比如在對(duì)用戶態(tài)代碼進(jìn)行調(diào)試時(shí),需要在目標(biāo)機(jī)的操作系統(tǒng)上運(yùn)行調(diào)試器以進(jìn)行本地調(diào)試;或者,在對(duì)用戶態(tài)代碼進(jìn)行調(diào)試時(shí),需要在目標(biāo)機(jī)的操作系統(tǒng)內(nèi)植入進(jìn)程跟蹤模塊(Ptrace),可能還需要在操作系統(tǒng)上運(yùn)行調(diào)試粧,再在宿主機(jī)上運(yùn)行調(diào)試器以進(jìn)行遠(yuǎn)程調(diào)試;而在對(duì)內(nèi)核態(tài)代碼,比如內(nèi)核模塊,進(jìn)行調(diào)試時(shí),需要在目標(biāo)機(jī)的操作系統(tǒng)內(nèi)植入內(nèi)核調(diào)試器,然后在宿主機(jī)運(yùn)行調(diào)試器進(jìn)行遠(yuǎn)程調(diào)試。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種調(diào)試方法、多核處理器和調(diào)試設(shè)備,用于將內(nèi)核態(tài)代碼和用戶態(tài)代碼在同一個(gè)調(diào)試平臺(tái)實(shí)現(xiàn)調(diào)試。
[0005]第一方面,本發(fā)明實(shí)施例提供一種調(diào)試方法,應(yīng)用于遠(yuǎn)程調(diào)試系統(tǒng)中的目標(biāo)機(jī),所述目標(biāo)機(jī)包括多核處理器,該調(diào)試方法包括:
[0006]所述多核處理器的核A執(zhí)行完預(yù)設(shè)事件處理例程后開(kāi)始停止運(yùn)行,并在停止運(yùn)行的過(guò)程中向其他核發(fā)送停止運(yùn)行信號(hào),所述停止運(yùn)行信號(hào)用于指示所述其他核停止運(yùn)行,所述其他核是指位于所述多核處理器內(nèi)、且與所述核A屬于同一邏輯分組的所有核,所述預(yù)設(shè)事件為內(nèi)核態(tài)代碼的處理函數(shù)或用戶態(tài)代碼的處理函數(shù);
[0007]所述核A接收第一解除停止指令并恢復(fù)運(yùn)行后,執(zhí)行調(diào)試信息收集函數(shù)以收集所述預(yù)設(shè)事件的調(diào)試信息,并在執(zhí)行完所述調(diào)試信息收集函數(shù)之后停止運(yùn)行;所述第一解除停止指令是所述遠(yuǎn)程調(diào)試系統(tǒng)中的調(diào)試裝置在確定所述核A停止運(yùn)行且導(dǎo)致所述核A停止運(yùn)行的原因?yàn)樗鲱A(yù)設(shè)事件之外的原因后發(fā)送的;
[0008]所述核A接收第二解除停止指令并恢復(fù)運(yùn)行后,向所述其他核發(fā)送恢復(fù)運(yùn)行指令,所述恢復(fù)運(yùn)行指令用于通知所述其他核恢復(fù)運(yùn)行;所述第二解除停止指令是所述調(diào)試裝置根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象之后發(fā)送的;
[0009]所述核A在運(yùn)行所述預(yù)設(shè)事件操作對(duì)象的過(guò)程中撞到所述懸掛斷點(diǎn),從而進(jìn)入調(diào)試狀態(tài)。
[0010]結(jié)合第一方面,在第一方面的第一種實(shí)施方式下,
[0011 ] 所述調(diào)試信息收集函數(shù)包括調(diào)試接口函數(shù),所述調(diào)試接口函數(shù)的頭部設(shè)置有第一調(diào)試異常指令,所述第一調(diào)試異常指令用于指示所述核A停止運(yùn)行;
[0012]所述核A執(zhí)行完預(yù)設(shè)事件處理例程后開(kāi)始停止運(yùn)行,并在停止運(yùn)行的過(guò)程中向其他核發(fā)送停止運(yùn)行信號(hào),具體包括:
[0013]所述核A執(zhí)行完所述預(yù)設(shè)事件處理例程后開(kāi)始執(zhí)行位于所述調(diào)試接口函數(shù)頭部的所述第一調(diào)試異常指令,并在執(zhí)行所述第一調(diào)試異常指令的過(guò)程中向所述其他核發(fā)送所述停止運(yùn)行信號(hào)。
[0014]結(jié)合第一方面的第一種實(shí)施方式,在第一方面的第二種實(shí)施方式下,
[0015]所述調(diào)試信息收集函數(shù)還包括與所述預(yù)設(shè)事件相關(guān)聯(lián)的功能函數(shù),且所述調(diào)試接口函數(shù)的尾部還設(shè)置有第二調(diào)試異常指令,所述第二調(diào)試異常指令用于指示所述核A停止運(yùn)行;
[0016]所述核A執(zhí)行調(diào)試信息收集函數(shù)以收集所述預(yù)設(shè)事件的調(diào)試信息,并在執(zhí)行完所述調(diào)試信息收集函數(shù)之后停止運(yùn)行,具體包括:
[0017]所述核A執(zhí)行與所述預(yù)設(shè)事件相關(guān)聯(lián)的功能函數(shù)以收集所述預(yù)設(shè)事件的調(diào)試信息,然后執(zhí)行位于所述調(diào)試接口函數(shù)尾部的所述第二調(diào)試異常指令。
[0018]結(jié)合第一方面的第二種實(shí)施方式,在第一方面的第三種實(shí)施方式下,
[0019]所述與所述預(yù)設(shè)事件相關(guān)聯(lián)的功能函數(shù)位于內(nèi)核調(diào)試粧內(nèi),所述內(nèi)核調(diào)試粧是預(yù)先植入在所述目標(biāo)機(jī)操作系統(tǒng)內(nèi)的。
[0020]結(jié)合第一方面或第一方面的第一種實(shí)施方式至第一方面的第三種實(shí)施方式中任一種實(shí)施方式,在第一方面的第四種實(shí)施方式下,
[0021]所述內(nèi)核態(tài)代碼的處理函數(shù)為內(nèi)核模塊的加載函數(shù);
[0022]所述用戶態(tài)代碼的處理函數(shù)為進(jìn)程的創(chuàng)建函數(shù)、進(jìn)程的切換函數(shù)、進(jìn)程的阻塞函數(shù)、進(jìn)程的喚醒函數(shù)、線程的創(chuàng)建函數(shù)、線程的切換函數(shù)、線程的阻塞函數(shù)或線程的喚醒函數(shù)。
[0023]結(jié)合第一方面的第四種實(shí)施方式,在第一方面的第五種實(shí)施方式下,
[0024]在所述預(yù)設(shè)事件為所述內(nèi)核模塊的加載函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為內(nèi)核模塊;
[0025]在所述預(yù)設(shè)事件為所述進(jìn)程的創(chuàng)建函數(shù)、所述進(jìn)程的切換函數(shù)、所述進(jìn)程的阻塞函數(shù)或所述進(jìn)程的喚醒函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為進(jìn)程;
[0026]在所述預(yù)設(shè)事件為所述線程的創(chuàng)建函數(shù)、所述線程的切換函數(shù)、所述線程的阻塞函數(shù)或所述線程的喚醒函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為線程。
[0027]結(jié)合第一方面的第四種實(shí)施方式或第一方面的第五種實(shí)施方式,在第一方面的第六種實(shí)施方式下,
[0028]所述預(yù)設(shè)事件的調(diào)試信息包括所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí);
[0029]在所述預(yù)設(shè)事件為內(nèi)核模塊的加載函數(shù)、進(jìn)程的創(chuàng)建函數(shù)或線程的創(chuàng)建函數(shù)的情況下,所述預(yù)設(shè)事件的調(diào)試信息還包括所述預(yù)設(shè)事件操作對(duì)象的加載地址。
[0030]結(jié)合第一方面或第一方面的第一種實(shí)施方式至第一方面的第六種實(shí)施方式中任一種實(shí)施方式,在第一方面的第七種實(shí)施方式下,所述多核處理器集成在系統(tǒng)級(jí)芯片SOC上;
[0031]所述核A向其他核發(fā)送停止運(yùn)行信號(hào),所述停止運(yùn)行信號(hào)用于指示所述其他核停止運(yùn)行,具體包括:
[0032]所述核A通過(guò)所述SOC的硬件交叉觸發(fā)網(wǎng)絡(luò)向所述其他核發(fā)送停止運(yùn)行信號(hào),所述停止運(yùn)行信號(hào)用于指示所述其他核停止運(yùn)行;
[0033]所述核A向所述其他核發(fā)送恢復(fù)運(yùn)行指令,所述恢復(fù)運(yùn)行指令用于通知所述其他核恢復(fù)運(yùn)行,具體包括:
[0034]所述核A通過(guò)所述SOC的硬件交叉觸發(fā)網(wǎng)絡(luò)向所述其他核發(fā)送恢復(fù)運(yùn)行指令,所述恢復(fù)運(yùn)行指令用于通知所述其他核恢復(fù)運(yùn)行。
[0035]第二方面,本發(fā)明實(shí)施例提供一種調(diào)試方法,由部署于宿主機(jī)內(nèi)的調(diào)試裝置執(zhí)行,所述宿主機(jī)位于遠(yuǎn)程調(diào)試系統(tǒng),所述方法包括:
[0036]所述調(diào)試裝置確定核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,所述核A屬于所述遠(yuǎn)程調(diào)試系統(tǒng)中的目標(biāo)機(jī)的多核處理器;
[0037]在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)轭A(yù)設(shè)事件的情況下,所述調(diào)試裝置獲取所述預(yù)設(shè)事件的調(diào)試信息,并根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象;所述預(yù)設(shè)事件為內(nèi)核態(tài)代碼的處理函數(shù)或用戶態(tài)代碼的處理函數(shù);所述預(yù)設(shè)事件操作對(duì)象為內(nèi)核態(tài)代碼或用戶態(tài)代碼;
[0038]所述調(diào)試裝置指示所述核A恢復(fù)運(yùn)行,以使所述核A在運(yùn)行所述預(yù)設(shè)事件操作對(duì)象的過(guò)程中撞到所述懸掛斷點(diǎn),從而使所述核A進(jìn)入調(diào)試狀態(tài)。
[0039]結(jié)合第二方面,在第二方面的第一種實(shí)施方式下,所述方法還包括:
[0040]在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)轭A(yù)設(shè)事件之外的原因的情況下,所述調(diào)試裝置指示所述核A恢復(fù)運(yùn)行以收集所述預(yù)設(shè)事件的調(diào)試信息。
[0041 ] 結(jié)合第二方面或第二方面的第一種實(shí)施方式,在第二方面的第二種實(shí)施方式下,
[0042]所述內(nèi)核態(tài)代碼的函數(shù)為內(nèi)核模塊的加載函數(shù);
[0043]所述用戶態(tài)代碼的函數(shù)為進(jìn)程的創(chuàng)建函數(shù)、進(jìn)程的切換函數(shù)、進(jìn)程的阻塞函數(shù)、進(jìn)程的喚醒函數(shù)、線程的創(chuàng)建函數(shù)、線程的切換函數(shù)、線程的阻塞函數(shù)或線程的喚醒函數(shù)。
[0044]結(jié)合第二方面的第二種實(shí)施方式,在第二方面的第三種實(shí)施方式下,
[0045]在所述預(yù)設(shè)事件為內(nèi)核模塊的加載函數(shù)、進(jìn)程的創(chuàng)建函數(shù)或線程的創(chuàng)建函數(shù)的情況下,所述預(yù)設(shè)事件的調(diào)試信息包括所述預(yù)設(shè)事件操作對(duì)象的加載地址;
[0046]所述調(diào)試裝置獲取所述預(yù)設(shè)事件的調(diào)試信息,并所述根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象,具體包括:
[0047]所述調(diào)試裝置獲取所述預(yù)設(shè)事件操作對(duì)象的加載地址,并根據(jù)所述預(yù)設(shè)事件操作對(duì)象的加載地址將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象的目的地址。
[0048]結(jié)合第二方面的第二種實(shí)施方式,在第二方面的第四種實(shí)施方式下,
[0049]在所述預(yù)設(shè)事件為進(jìn)程的切換函數(shù)、進(jìn)程的阻塞函數(shù)、進(jìn)程的喚醒函數(shù)、線程的切換函數(shù)、線程的阻塞函數(shù)或線程的喚醒函數(shù)的情況下,所述預(yù)設(shè)事件的調(diào)試信息包括所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí);
[0050]所述調(diào)試裝置獲取所述預(yù)設(shè)事件的調(diào)試信息,并所述根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象,具體包括:
[0051]所述調(diào)試裝置獲取所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí),根據(jù)所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí)確定所述預(yù)設(shè)事件操作對(duì)象的加載地址,并根據(jù)所述預(yù)設(shè)事件操作對(duì)象的加載地址將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象的目的地址。
[0052]結(jié)合第二方面的第四種實(shí)施方式,在第二方面的第五種實(shí)施方式下,
[0053]所述宿主機(jī)的存儲(chǔ)空間預(yù)先存儲(chǔ)了所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí)與所述預(yù)設(shè)事件操作對(duì)象的加載地址的對(duì)應(yīng)關(guān)系;
[0054]所述根據(jù)所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí)確定所述預(yù)設(shè)事件操作對(duì)象的加載地址,具體包括:
[0055]根據(jù)所述預(yù)設(shè)事件操作對(duì)象的標(biāo)識(shí)以及所述對(duì)應(yīng)關(guān)系,從所述宿主機(jī)的存儲(chǔ)空間獲取所述預(yù)設(shè)事件操作對(duì)象的加載地址。
[0056]結(jié)合第二方面或第二方面的第一種實(shí)施方式至第二方面的第五種實(shí)施方式中任一種實(shí)施方式,在第二方面的第六種實(shí)施方式下,所述調(diào)試裝置包括調(diào)試器和調(diào)試代理,
[0057]所述調(diào)試裝置確定所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)轭A(yù)設(shè)事件的情況下,所述調(diào)試裝置獲取所述預(yù)設(shè)事件的調(diào)試信息,并根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象,具體包括:
[0058]所述調(diào)試代理輪詢到所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)樗鲱A(yù)設(shè)事件的情況下,所述調(diào)試代理將第二消息上報(bào)所述調(diào)試器,所述第二消息包括所述核A停止運(yùn)行以及所述預(yù)設(shè)事件的標(biāo)識(shí);
[0059]所述調(diào)試器接收所述第二消息后,根據(jù)所述預(yù)設(shè)事件的標(biāo)識(shí)獲取所述預(yù)設(shè)事件的調(diào)試信息,并根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象;
[0060]所述調(diào)試裝置指示所述核A恢復(fù)運(yùn)行,具體包括:
[0061]所述調(diào)試器指示所述調(diào)試代理向所述核A發(fā)送第二解除停止指令,所述第二解除停止指令用于指示所述核A恢復(fù)運(yùn)行。
[0062]結(jié)合第二方面的第六種實(shí)施方式,在第二方面的第七種實(shí)施方式下,
[0063]所述調(diào)試裝置確定所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)轭A(yù)設(shè)事件之外的原因的情況下,所述調(diào)試裝置指示所述核A恢復(fù)運(yùn)行以收集所述預(yù)設(shè)事件的調(diào)試信息,具體包括:
[0064]所述調(diào)試代理輪詢到所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)樗鲱A(yù)設(shè)事件之外的原因的情況下,所述調(diào)試代理向所述核A發(fā)送第一解除停止指令,所述第一解除停止指令用于指示所述核A恢復(fù)運(yùn)行以收集所述預(yù)設(shè)事件的調(diào)試信息。
[0065]結(jié)合第二方面或第二方面的第一種實(shí)施方式至第二方面的第六種實(shí)施方式中任一種實(shí)施方式,在第二方面的第八種實(shí)施方式下,所述調(diào)試裝置包括調(diào)試器和調(diào)試代理;
[0066]所述調(diào)試裝置確定所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)轭A(yù)設(shè)事件之外的原因的情況下,所述調(diào)試裝置指示所述核A恢復(fù)運(yùn)行以收集所述預(yù)設(shè)事件的調(diào)試信息,具體包括:
[0067]所述調(diào)試代理輪詢到所述核A停止運(yùn)行后,確定導(dǎo)致所述核A停止運(yùn)行的原因,在導(dǎo)致所述核A停止運(yùn)行的原因?yàn)樗鲱A(yù)設(shè)事件之外的原因的情況下,將第一消息上報(bào)給所述調(diào)試器,所述第一消息包括所述核A停止運(yùn)行以及缺省標(biāo)識(shí),
[0068]所述調(diào)試器接收所述第一消息后,指示所述調(diào)試代理向所述核A發(fā)送第一解除停止指令,所述第一解除停止指令用于指示所述核A恢復(fù)運(yùn)行以收集所述預(yù)設(shè)事件的調(diào)試信息。
[0069]結(jié)合第二方面或第二方面的第一種實(shí)施方式至第二方面的第八種實(shí)施方式中任一種實(shí)施方式,在第二方面的第九種實(shí)施方式下,
[0070]在所述預(yù)設(shè)事件為所述內(nèi)核模塊的加載函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為內(nèi)核模塊;
[0071]在所述預(yù)設(shè)事件為所述進(jìn)程的創(chuàng)建函數(shù)、所述進(jìn)程的切換函數(shù)、所述進(jìn)程的阻塞函數(shù)或所述進(jìn)程的喚醒函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為進(jìn)程;
[0072]在所述預(yù)設(shè)事件為所述線程的創(chuàng)建函數(shù)、所述線程的切換函數(shù)、所述線程的阻塞函數(shù)或所述線程的喚醒函數(shù)的情況下,所述預(yù)設(shè)事件操作對(duì)象為線程。
[0073]第三方面,本發(fā)明實(shí)施例提供一種多核處理器,應(yīng)用于遠(yuǎn)程調(diào)試系統(tǒng)中的目標(biāo)機(jī),所述多核處理器包括核A、其他核和輸入端口,所述其他核是指位于所述多核處理器內(nèi)、且與所述核A屬于同一邏輯分組的所有核,其中:
[0074]所述核A用于在執(zhí)行完預(yù)設(shè)事件處理例程后開(kāi)始停止運(yùn)行,并在停止運(yùn)行的過(guò)程中向其他核發(fā)送停止運(yùn)行信號(hào),所述停止運(yùn)行信號(hào)用于指示所述其他核停止運(yùn)行,所述預(yù)設(shè)事件為內(nèi)核態(tài)代碼的處理函數(shù)或用戶態(tài)代碼的處理函數(shù);
[0075]所述輸入端口用于接收第一解除停止指令,并將所述第一解除停止指令轉(zhuǎn)送給所述核A,所述第一解除停止指令是所述遠(yuǎn)程調(diào)試系統(tǒng)中的調(diào)試裝置在確定所述核A停止運(yùn)行且導(dǎo)致所述核A停止運(yùn)行的原因?yàn)樗鲱A(yù)設(shè)事件之外的原因后發(fā)送的;
[0076]所述核A還用于在接收所述第一解除停止指令并恢復(fù)運(yùn)行后,執(zhí)行調(diào)試信息收集函數(shù)以收集所述預(yù)設(shè)事件的調(diào)試信息,并在執(zhí)行完所述調(diào)試信息收集函數(shù)之后停止運(yùn)行;
[0077]所述輸入端口還用于接收第二解除停止指令,并將所述第二解除停止指令轉(zhuǎn)送給所述核A,所述第二解除停止指令是所述調(diào)試裝置根據(jù)所述預(yù)設(shè)事件的調(diào)試信息將預(yù)先設(shè)置的懸掛斷點(diǎn)設(shè)置到所述預(yù)設(shè)事件操作對(duì)象之后發(fā)送的;
[0078]所述核A還用于在接收所述第二解除停止指令并恢復(fù)運(yùn)行后,向所述其他核發(fā)送恢復(fù)運(yùn)行指令,所述恢復(fù)運(yùn)行指令用于通知所述其他核恢復(fù)運(yùn)行;以及還用于在運(yùn)行所述預(yù)設(shè)事件操作對(duì)象的過(guò)程中撞到所述懸掛斷點(diǎn),從而進(jìn)入調(diào)試狀態(tài)。
[0079]結(jié)合第三方面,在第三方面的第一種實(shí)施方式下,
[0080]所述調(diào)試信息收集函數(shù)包括調(diào)試接口函數(shù),所述調(diào)試接口函數(shù)的頭部設(shè)置有第一調(diào)試異常指令,所述第一調(diào)試異常指令用于指示所述核A停止運(yùn)行;
[0081]所述核A具體用于在執(zhí)行完所述預(yù)設(shè)事件處理例程后開(kāi)始執(zhí)行位于所述調(diào)試接口函數(shù)頭部的所述第一調(diào)試異常指令,并在執(zhí)行所述第一調(diào)試異常指令的過(guò)程中向所述其他核發(fā)送所述停止運(yùn)行信號(hào)。
[0082]結(jié)合第三方面的第一種實(shí)施方式,在第三方面的第二種實(shí)施方式下,
[0083]所述調(diào)試信息收集函數(shù)還包括與所述預(yù)