[發(fā)明專利]用于調(diào)試過(guò)程中的代碼動(dòng)態(tài)切換的方法和系統(tǒng)有效
| 申請(qǐng)?zhí)枺?/td> | 201310090980.4 | 申請(qǐng)日: | 2013-03-21 |
| 公開(kāi)(公告)號(hào): | CN104063258B | 公開(kāi)(公告)日: | 2017-05-03 |
| 發(fā)明(設(shè)計(jì))人: | 蔣健;紀(jì)金松;官孝峰;張嗣元 | 申請(qǐng)(專利權(quán))人: | 國(guó)際商業(yè)機(jī)器公司 |
| 主分類號(hào): | G06F9/45 | 分類號(hào): | G06F9/45 |
| 代理公司: | 中國(guó)國(guó)際貿(mào)易促進(jìn)委員會(huì)專利商標(biāo)事務(wù)所11038 | 代理人: | 付建軍 |
| 地址: | 美國(guó)*** | 國(guó)省代碼: | 暫無(wú)信息 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 調(diào)試 過(guò)程 中的 代碼 動(dòng)態(tài) 切換 方法 系統(tǒng) | ||
1.一種用于調(diào)試過(guò)程中的代碼動(dòng)態(tài)切換的方法,包括:
對(duì)于要調(diào)試的源代碼程序,為該源代碼程序中的每個(gè)編譯單元產(chǎn)生該編譯單元的第一版本的二進(jìn)制碼和第二版本的二進(jìn)制碼,其中第一版本是經(jīng)過(guò)優(yōu)化的版本,第二版本是未經(jīng)過(guò)優(yōu)化的可調(diào)試版本,所述第一版本的二進(jìn)制碼和所述第二版本的二進(jìn)制碼都來(lái)自該源代碼程序中的所述編譯單元的同一版本;
把所有編譯單元的第一版本的二進(jìn)制碼加載到內(nèi)存中以供調(diào)試器運(yùn)行;
監(jiān)視用戶的調(diào)試操作;
響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元進(jìn)行調(diào)試,把該編譯單元的第二版本的二進(jìn)制碼動(dòng)態(tài)地重新加載到內(nèi)存中的與該編譯單元的第一版本的二進(jìn)制碼相同的存放地址,其中所述第二版本的二進(jìn)制碼替換掉所述第一版本的二進(jìn)制碼;以及
響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元取消調(diào)試,把該編譯單元的第一版本的二進(jìn)制碼動(dòng)態(tài)地重新加載到內(nèi)存中的與該編譯單元的第二版本的二進(jìn)制碼相同的存放地址,其中所述第一版本的二進(jìn)制碼替換掉所述第二版本的二進(jìn)制碼。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述編譯單元是函數(shù)或方法。
3.根據(jù)權(quán)利要求1所述的方法,其中,確定要對(duì)源代碼程序中的一個(gè)編譯單元進(jìn)行調(diào)試包括:在一個(gè)編譯單元中設(shè)置首個(gè)斷點(diǎn);或者調(diào)試焦點(diǎn)進(jìn)入一個(gè)編譯單元。
4.根據(jù)權(quán)利要求1所述的方法,其中,確定要對(duì)源代碼程序中的一個(gè)編譯單元取消調(diào)試包括:在一個(gè)編譯單元中刪除全部斷點(diǎn);或者調(diào)試焦點(diǎn)離開(kāi)一個(gè)未設(shè)置斷點(diǎn)的編譯單元。
5.根據(jù)權(quán)利要求1所述的方法,還包括:針對(duì)第二版本的二進(jìn)制碼,產(chǎn)生調(diào)試信息。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述優(yōu)化包括以下優(yōu)化中的一種:函數(shù)級(jí)優(yōu)化、基于區(qū)域的優(yōu)化、基于基本塊的優(yōu)化、基于窺孔的優(yōu)化。
7.根據(jù)權(quán)利要求1所述的方法,其中,編譯單元的第一版本的二進(jìn)制碼和第二版本的二進(jìn)制碼被包含在通過(guò)鏈接器的鏈接而產(chǎn)生的同一個(gè)可執(zhí)行文件中,并且第二版本的二進(jìn)制碼位于該可執(zhí)行文件的評(píng)論部分中。
8.根據(jù)權(quán)利要求7所述的方法,其中,為第一版本的二進(jìn)制碼在可執(zhí)行文件中分配的空間的大小等于第一版本的二進(jìn)制碼和第二版本的二進(jìn)制碼的大小中的較大者。
9.根據(jù)權(quán)利要求1所述的方法,其中,編譯單元的第二版本的二進(jìn)制碼是僅對(duì)該編譯單元的名稱修改后進(jìn)行無(wú)優(yōu)化編譯而產(chǎn)生的。
10.根據(jù)權(quán)利要求9所述的方法,其中,編譯單元的修改后的名稱與編譯單元的原名稱相關(guān)。
11.一種用于調(diào)試過(guò)程中的代碼動(dòng)態(tài)切換的系統(tǒng),包括:
編譯器,被配置為,對(duì)于要調(diào)試的源代碼程序,為該源代碼程序中的每個(gè)編譯單元產(chǎn)生該編譯單元的第一版本的二進(jìn)制碼和第二版本的二進(jìn)制碼,其中第一版本是經(jīng)過(guò)優(yōu)化的版本,第二版本是未經(jīng)過(guò)優(yōu)化的可調(diào)試版本,所述第一版本的二進(jìn)制碼和所述第二版本的二進(jìn)制碼都來(lái)自該源代碼程序中的所述編譯單元的同一版本;和
調(diào)試器,被配置為:
把所有編譯單元的第一版本的二進(jìn)制碼加載到內(nèi)存中;
監(jiān)視用戶的調(diào)試操作;
響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元進(jìn)行調(diào)試,把該編譯單元的第二版本的二進(jìn)制碼動(dòng)態(tài)地重新加載到內(nèi)存中的與該編譯單元的第一版本的二進(jìn)制碼相同的存放地址,其中所述第二版本的二進(jìn)制碼替換掉所述第一版本的二進(jìn)制碼;以及
響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元取消調(diào)試,把該編譯單元的第一版本的二進(jìn)制碼動(dòng)態(tài)地重新加載到內(nèi)存中的與該編譯單元的第二版本的二進(jìn)制碼相同的存放地址,其中所述第一版本的二進(jìn)制碼替換掉所述第二版本的二進(jìn)制碼。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,所述編譯單元是函數(shù)或方法。
13.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元進(jìn)行調(diào)試包括:在一個(gè)編譯單元中設(shè)置首個(gè)斷點(diǎn);或者調(diào)試焦點(diǎn)進(jìn)入一個(gè)編譯單元。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,響應(yīng)于確定要對(duì)源代碼程序中的一個(gè)編譯單元取消調(diào)試包括:在一個(gè)編譯單元中刪除全部斷點(diǎn);或者調(diào)試焦點(diǎn)離開(kāi)一個(gè)未設(shè)置斷點(diǎn)的編譯單元。
15.根據(jù)權(quán)利要求11所述的系統(tǒng),其中,編譯器還被配置為針對(duì)第二版本的二進(jìn)制碼,產(chǎn)生調(diào)試信息。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于國(guó)際商業(yè)機(jī)器公司,未經(jīng)國(guó)際商業(yè)機(jī)器公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310090980.4/1.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 調(diào)試系統(tǒng)、調(diào)試方法和調(diào)試控制方法
- 一種終端調(diào)試方法和裝置
- 設(shè)備自動(dòng)工程調(diào)試方法、裝置、系統(tǒng)和計(jì)算機(jī)設(shè)備
- 基于串口的遠(yuǎn)程設(shè)備調(diào)試系統(tǒng)及方法
- 一種安卓系統(tǒng)動(dòng)態(tài)調(diào)試的方法及系統(tǒng)
- 調(diào)試裝置和遠(yuǎn)程調(diào)試系統(tǒng)
- 一種調(diào)試方法、裝置及系統(tǒng)
- 一種應(yīng)用程序開(kāi)發(fā)的調(diào)試系統(tǒng)及方法
- 樓宇設(shè)備的異地調(diào)試控制方法、裝置和計(jì)算機(jī)設(shè)備
- 一種芯片調(diào)試系統(tǒng)及芯片調(diào)試方法





