本發(fā)明屬于軟件調(diào)試領域,尤其涉及一種基于linux的應用程序調(diào)試方法及裝置。
背景技術:
當前基于linux的嵌入式平臺下,調(diào)試應用程序,一般采用打印的方式,打印一些開發(fā)人員或者維護人員需要關注的固定信息。而這些信息在應用程序會增加額外的開銷,所以在正式版本中,可能會關閉調(diào)試代碼,采用另外一種方式來監(jiān)測應用程序的運行狀態(tài),例如把運行日志記錄到文件里,以備相關人員查閱。
但是現(xiàn)有的調(diào)試方式僅僅是一種靜態(tài)調(diào)試法,還不能做到在程序運行中動態(tài)的關閉開啟調(diào)試功能,隨時隨地查看自己所需要關注的環(huán)節(jié),比如在需要的時候開啟調(diào)試功能查看某某變量在某一時刻的確定值;在程序運行中,動態(tài)去修改某一變量的值,以讓程序強制執(zhí)行某些邏輯判斷來測試軟件的健壯性。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于linux的應用程序調(diào)試方法,旨在解決現(xiàn)在的應用程序調(diào)試方法存在占用資源開銷、只能靜態(tài)調(diào)試的問題。
本發(fā)明是這樣實現(xiàn)的,一種基于linux的應用程序調(diào)試方法,所述方法包括如下步驟:
建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信;
接收用戶調(diào)試指令,將所述用戶調(diào)試指令通過管道A發(fā)送給所述應用程序;
接收通過所述管道B發(fā)送的所述應用程序生成與所述用戶調(diào)試指令相對應的調(diào)試信息,并反饋給用戶。
本發(fā)明的另一目的在于提供一種基于linux的應用程序調(diào)試裝置,所述裝置包括:
通信建立單元,用于建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信;
用戶調(diào)試指令單元,用于接收用戶調(diào)試指令,將所述用戶調(diào)試指令通過管道A發(fā)送給所述應用程序;
調(diào)試信息單元,用于接收通過所述管道B發(fā)送的所述應用程序生成與所述用戶調(diào)試指令相對應的調(diào)試信息,并反饋給用戶。
在本發(fā)明中,基于linux的應用程序調(diào)試方法通過建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信,接收用戶調(diào)試指令,將用戶調(diào)試指令通過管道A發(fā)送給應用程序,并接收通過管道B發(fā)送的應用程序生成與用戶調(diào)試指令相對應的調(diào)試信息,反饋給用戶,這樣不需要占用資源開銷,實現(xiàn)在線監(jiān)控應用程序運行狀態(tài),并能動態(tài)地調(diào)試應用程序功能。
附圖說明
圖1是本發(fā)明實施例提供的基于linux的應用程序調(diào)試方法的流程圖;
圖2是本發(fā)明實施例提供的基于linux的應用程序調(diào)試過程的結(jié)構(gòu)圖;
圖3是本發(fā)明實施例提供的基于linux的應用程序調(diào)試裝置的結(jié)構(gòu)圖。
具體實施方式
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
圖1示出了本發(fā)明實施例提供的基于linux的應用程序調(diào)試方法的流程, 為了便于說明,僅示出了與本發(fā)明實施例相關的部分。
一種基于linux的應用程序調(diào)試方法,所述方法包括如下步驟:
步驟S101,建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信;
步驟S102,接收用戶調(diào)試指令,將所述用戶調(diào)試指令通過管道A發(fā)送給所述應用程序;
步驟S103,接收通過所述管道B發(fā)送的所述應用程序生成與所述用戶調(diào)試指令相對應的調(diào)試信息,并反饋給用戶。
作為本發(fā)明一實施例,步驟S101,所述建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信的步驟之前還包括:
建立所述用戶調(diào)試指令與調(diào)試函數(shù)相對應的調(diào)試函數(shù)鏈表。
其中,管道A和管道B分別是由內(nèi)核管理的一個緩沖區(qū),管道A的輸入端連接調(diào)試程序,管道A的輸出端連接應用程序,管道B的輸入端連接應用程序,管道B的輸出端連接調(diào)試程序。
每個調(diào)試函數(shù)實現(xiàn)一定的功能,比如強制執(zhí)行特定的業(yè)務流程、打印應用程序的運行狀態(tài)等,具體某一調(diào)試函數(shù)的功能根據(jù)用戶調(diào)試需求而變。
作為本發(fā)明一實施例,所述調(diào)試信息由應用程序根據(jù)所述用戶調(diào)試指令,查詢調(diào)試函數(shù)鏈表,找到相對應的調(diào)試函數(shù)并執(zhí)行而生成。
作為本發(fā)明一實施例,所述用戶調(diào)試指令包括本地輸入用戶調(diào)試指令和遠程輸入用戶調(diào)試指令。
圖2示出了本發(fā)明實施例提供的基于linux的應用程序調(diào)試過程的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實施例相關的部分。
該結(jié)構(gòu)包括包括調(diào)試程序、應用程序和linux內(nèi)核。
圖3示出了本發(fā)明實施例提供的基于linux的應用程序調(diào)試裝置的結(jié)構(gòu),為了便于說明,僅示出了與本發(fā)明實施例相關的部分。
基于linux的應用程序調(diào)試裝置是調(diào)試程序的軟件模塊。
一種基于linux的應用程序調(diào)試裝置,所述裝置包括:
通信建立單元31,用于建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信;
用戶調(diào)試指令單元32,用于接收用戶調(diào)試指令,將所述用戶調(diào)試指令通過管道A發(fā)送給所述應用程序;
調(diào)試信息單元33,用于接收通過所述管道B發(fā)送的所述應用程序生成與所述用戶調(diào)試指令相對應的調(diào)試信息,并反饋給用戶。
作為本發(fā)明一實施例,所述裝置還包括:
鏈表建立單元34,用于建立所述用戶調(diào)試指令與調(diào)試函數(shù)相對應的調(diào)試函數(shù)鏈表。
作為本發(fā)明一實施例,所述調(diào)試信息由應用程序根據(jù)所述用戶調(diào)試指令,查詢調(diào)試函數(shù)鏈表,找到相對應的調(diào)試函數(shù)并執(zhí)行而生成。
作為本發(fā)明一實施例,所述用戶調(diào)試指令包括本地輸入用戶調(diào)試指令和遠程輸入用戶調(diào)試指令。
在本發(fā)明實施例中,基于linux的應用程序調(diào)試方法通過建立linux內(nèi)核的管道A和管道B分別與應用程序之間的通信,接收用戶調(diào)試指令,將用戶調(diào)試指令通過管道A發(fā)送給應用程序,并接收通過管道B發(fā)送的應用程序生成與用戶調(diào)試指令相對應的調(diào)試信息,反饋給用戶,這樣不需要占用資源開銷,實現(xiàn)在線監(jiān)控應用程序運行狀態(tài),并能動態(tài)地調(diào)試應用程序功能。
本領域普通技術人員可以理解:實現(xiàn)上述方法實施例的步驟或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟,而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。