本發明涉及軟件開發技術領域,尤其涉及一種代碼調試方法和裝置。
背景技術:
SMART/400是基于IBM AS/400平臺的軟件集成開發環境。SMART/400通過分層技術來實現軟件源代碼的管理,具體的,開發環境分為產品發布層(也稱為release層)、集成測試層和開發層,開發層用于對源代碼的編寫、修改和編譯,開發完成的源代碼通過SMART/400的工具從開發層開始經過集成測試層最終發布到release層,release層通常用做用戶調試以及產品打包。
目前,SMART/400提供的集成開發環境調試工具(也稱為STRISDB)對程序進行調試時,過程如下:首先,將程序從release層下拉到開發層,其次,將下拉到開發層的程序以調試模式在開發層進行編譯,然后,將在開發層編譯生成的帶調試代碼的執行程序從開發層拷貝到release層,最后,啟動STRISDB進行程序調試。
但是,在上述調試過程中,由于需要將程序從release層下拉到開發層,因此,開發層會遺留不必要的帶有調試代碼的程序版本,若后續該帶有調試代碼的程序版本被發布到release層,將導致產品出錯。
技術實現要素:
本發明提供一種代碼調試方法和裝置,可以避免將調試代碼遺留在集成開發環境中,規避了將調試代碼發布至生產環境的風險,提升了產品的正確率。
本發明提供的代碼調試方法,包括:
獲取代碼調制裝置的入口參數;所述入口參數包括:程序的名稱、程序的類型和程序的層次;所述程序的層次指示了所述程序在集成開發環境中所在的開發層次;
獲取登陸用戶對應的搜索庫鏈;所述搜索庫鏈包括所述登錄用戶對應的各個數據庫的原始搜索優先級;所述數據庫包括:所述集成開發環境中各個開發層次對應的數據庫和所述登陸用戶對應的臨時數據庫;
修改所述搜索庫鏈,以使所述臨時數據庫的搜索優先級高于所述集成開發環境中各個開發層次對應的數據庫的搜索優先級;
根據所述程序的名稱和所述程序的層次將所述程序從所述集成開發環境拷貝到所述臨時數據庫中;
根據所述程序的類型調用與所述程序的類型對應的編譯命令對所述臨時數據庫中的程序進行編譯,生成調試代碼;
對所述調試代碼進行調試,獲得調試結果。
本發明提供的代碼調試裝置,包括:
參數獲取模塊,用于獲取所述代碼調試裝置的入口參數;所述入口參數包括:程序的名稱、程序的類型和程序的層次;所述程序的層次指示了所述程序在集成開發環境中所在的開發層次;
庫鏈獲取模塊,用于獲取登陸用戶對應的搜索庫鏈;所述搜索庫鏈包括所述登錄用戶對應的各個數據庫的原始搜索優先級;所述數據庫包括:所述集成開發環境中各個開發層次對應的數據庫和所述登陸用戶對應的臨時數據庫;
庫鏈修改模塊,用于修改所述搜索庫鏈,以使所述臨時數據庫的搜索優先級高于所述集成開發環境中各個開發層次對應的數據庫的搜索優先級;
拷貝模塊,用于根據所述程序的名稱和所述程序的層次將所述程序從所述集成開發環境拷貝到所述臨時數據庫中;
編譯模塊,用于根據所述程序的類型調用與所述程序的類型對應的編譯命令對所述臨時數據庫中的程序進行編譯,生成調試代碼;
調試模塊,用于對所述調試代碼進行調試,獲得調試結果。
本發明提供了一種代碼調試方法和裝置,本發明提供的代碼調試方法,充分利用了用戶對應的臨時數據庫,將程序從集成開發環境中拷貝到用戶的臨時數據庫中進行編譯和調試,由于用戶的臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級,因此,會優先搜索臨時數據庫從而對臨時數據庫中的調試代碼進行調試,避免了將調試代碼遺留在集成開發環境中,規避了將調試代碼發布至生產環境的風險,提升了產品的正確率。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例一提供的代碼調試方法的流程圖;
圖2為本發明實施例一提供的代碼調試裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
本發明實施例提供的代碼調試方法和裝置,主要應用于基于IBM AS/400平臺的SMART/400軟件集成開發環境,解決現有的在SMART/400開發層遺留調試代碼的問題。當然,本發明實施例提供的代碼調試方法和裝置,也可以應用于基于其他硬件平臺的任意軟件集成開發環境遺留調試代碼的場景,本發明對此不做特別限制。
圖1為本發明實施例一提供的代碼調試方法的流程圖,本實施例提供的代碼調試方法,執行主體可以為代碼調試裝置,代碼調試裝置可以為軟件程序。如圖1所示,本實施例提供的代碼調試方法,可以包括:
步驟101、獲取代碼調制裝置的入口參數。
其中,入口參數包括:程序的名稱、程序的類型和程序的層次。程序的層次指示了程序在集成開發環境中所在的開發層次。
具體的,代碼調制裝置的入口參數指示了待調試程序的相關屬性,在本步驟中,獲取待調試程序的相關屬性。
需要說明的是,本實施例對于程序的名稱、程序的類型和程序的層次的具體實現方式不做特別限定,程序的層次根據不同的集成開發環境而有所不同,根據實際需要進行設置。
例如:程序的名稱可以為中文或者英文的任意組合,等等。
例如:程序的類型可以為命令集程序(Comman list program,簡稱CLP),也可以為COBOL程序(簡稱為CBL程序),等等。
例如:若集成開發環境為SMART/400,則集成開發環境的開發層次可以為release層、集成測試層和開發層,相應的,程序的層次可以為release層、集成測試層或者開發層。
步驟102、獲取登陸用戶對應的搜索庫鏈。
搜索庫鏈包括登錄用戶對應的各個數據庫的原始搜索優先級。數據庫包括:集成開發環境中各個開發層次對應的數據庫和登陸用戶對應的臨時數據庫。
具體的,用戶對應的搜索庫鏈,指示了用戶對應的各個數據庫的原始搜索優先級,在程序執行時需要搜索數據庫時,將會按照搜索庫鏈指示的各個數據庫對應的搜索優先級,對搜索優先級高的數據庫進行優先搜索。
其中,每個登陸用戶均對應有一個臨時數據庫。
需要說明的是,本實施例對于用戶對應的臨時數據庫的實現方式不做特備限制。例如:若硬件平臺為IBM AS/400,則用戶對應的臨時數據庫可以為IBM AS/400的QTEMP庫。
步驟103、修改搜索庫鏈,以使臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級。
具體的,用戶對應的臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級,則當程序執行需要搜索數據庫時,將優先搜索用戶的臨時數據庫,進而可以優先獲取臨時數據庫中的數據以進行進一步的處理。
步驟104、根據程序的名稱和程序的層次將程序從集成開發環境拷貝到臨時數據庫中。
具體的,程序的名稱可以唯一標識不同的程序,程序的層次指示了程序在集成開發環境中所在的開發層次,因此,通過程序的名稱和程序的層次可以將程序從集成開發環境中相應的開發層次中拷貝到用戶的臨時數據庫中。
步驟105、根據程序的類型調用與程序的類型對應的編譯命令對臨時數據庫中的程序進行編譯,生成調試代碼。
具體的,調用與程序的類型相對應的編譯命令在調試模式下對程序進行編譯,生成調試代碼,調試代碼中可以包括用戶增加的調試信息。
步驟106、對調試代碼進行調試,獲得調試結果。
可見,本實施例提供的代碼調試方法,充分利用了用戶對應的臨時數據庫,相比于現有技術中將程序從release層下拉到開發層進行編譯和調試,本實施例提供的代碼調試方法,將程序從release層拷貝到用戶的臨時數據庫中進行編譯和調試,由于修改了用戶對應的搜索庫鏈,用戶的臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級,因此,當程序執行需要搜索數據庫時,會優先搜索用戶的臨時數據庫而不是集成開發環境,從而獲得臨時數據庫中的調試代碼,進而對調試代碼進行調試獲得調試結果。在代碼的整個調試過程中,不會在集成開發環境中遺留調試代碼,因此規避了將調試代碼發布至生產環境的風險,由于不會因為在集成開發環境中遺留調試代碼而導致產品出錯,因此提升了產品的正確率。
可選的,入口參數還可以包括:更新數據庫指示信息。本實施例提供的代碼調試方法,還可以包括:
若更新數據庫指示信息指示需要更新數據庫,則將程序對應的調試信息更新至與程序的層次對應的數據庫中。
具體的,更新數據庫指示信息可以為更新數據庫或者不更新數據庫,這里的數據庫是指與程序的層次對應的數據庫,若需要更新數據庫,則將程序對應的調試信息更新至數據庫中。
需要說明的是,本實施例對于調試信息的具體實現方式不做特別限制,根據需要進行設置。例如:程序相關的調試信息可以包括在對程序進行編譯過程中添加的調試信息以及調試程序過程中生成的相關數據,等等。
可選的,本實施例提供的代碼調試方法,還可以包括:
將搜索庫鏈中各個數據庫的搜索優先級恢復為各個數據庫的原始搜索優先級。
具體的,在程序調試完成后,將用戶對應的搜索庫鏈中各個數據庫的搜索優先級恢復為各個數據庫的原始搜索優先級,以確保后續用戶搜索庫鏈應用的正確性。
可選的,本實施例提供的代碼調試方法,還可以包括:
刪除臨時數據庫中的程序、調試代碼和調試結果。
可選的,本實施例提供的代碼調試方法,還可以包括:
在用戶退出登出時,清空用戶對應的臨時數據庫中的所有數據。
本實施例提供了一種代碼調試方法,包括:獲取代碼調制裝置的入口參數,獲取登陸用戶對應的搜索庫鏈,修改搜索庫鏈,以使臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級,根據程序的名稱和程序的層次將程序從集成開發環境拷貝到臨時數據庫中,根據程序的類型調用與程序的類型對應的編譯命令對臨時數據庫中的程序進行編譯,生成調試代碼,對調試代碼進行調試,獲得調試結果。本實施例提供的代碼調試方法,充分利用了用戶對應的臨時數據庫,將程序從集成開發環境中拷貝到用戶的臨時數據庫中進行編譯和調試,由于用戶的臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級,因此,會優先搜索臨時數據庫從而對臨時數據庫中的調試代碼進行調試,避免了將調試代碼遺留在集成開發環境中,規避了將調試代碼發布至生產環境的風險,提升了產品的正確率。
圖2為本發明實施例一提供的代碼調試裝置的結構示意圖,本實施例提供的代碼調試裝置,用于執行圖1所示方法實施例提供的代碼調試方法。如圖2所示,本實施例提供的代碼調試裝置,可以包括:
參數獲取模塊11,用于獲取代碼調試裝置的入口參數。入口參數包括:程序的名稱、程序的類型和程序的層次。程序的層次指示了程序在集成開發環境中所在的開發層次。
庫鏈獲取模塊12,用于獲取登陸用戶對應的搜索庫鏈。搜索庫鏈包括登錄用戶對應的各個數據庫的原始搜索優先級。數據庫包括:集成開發環境中各個開發層次對應的數據庫和登陸用戶對應的臨時數據庫。
庫鏈修改模塊13,用于修改搜索庫鏈,以使臨時數據庫的搜索優先級高于集成開發環境中各個開發層次對應的數據庫的搜索優先級。
拷貝模塊14,用于根據程序的名稱和程序的層次將程序從集成開發環境拷貝到臨時數據庫中。
編譯模塊15,用于根據程序的類型調用與程序的類型對應的編譯命令對臨時數據庫中的程序進行編譯,生成調試代碼。
調試模塊16,用于對調試代碼進行調試,獲得調試結果。
可選的,入口參數還包括:更新數據庫指示信息。裝置還包括:更新模塊。
更新模塊用于:
若更新數據庫指示信息指示需要更新數據庫,則將程序對應的調試信息更新至與程序的層次對應的數據庫中。
可選的,庫鏈修改模塊13還用于:
將搜索庫鏈中各個數據庫的搜索優先級恢復為各個數據庫的原始搜索優先級。
可選的,裝置還包括:數據刪除模塊。數據刪除模塊用于:
刪除臨時數據庫中的程序、調試代碼和調試結果。
可選的,數據刪除模塊還用于:
在用戶退出登出時,清空用戶對應的臨時數據庫中的所有數據。
本實施例提供的代碼調試裝置,用于執行圖1所示方法實施例提供的代碼調試方法,其技術原理和技術效果類似,此處不再贅述。
本領域普通技術人員可以理解:實現上述各方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質中。該程序在執行時,執行包括上述各方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質。
最后應說明的是:以上各實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述各實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分或者全部技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明各實施例技術方案的范圍。