官术网_书友最值得收藏!

1.2.1 本地動態(tài)調(diào)試

本地動態(tài)調(diào)試是比較容易操作的,因為在有項目源碼,以及清晰完整的項目架構(gòu)的情況下,只需要使用IDEA等工具導(dǎo)入項目包并設(shè)置斷點,即可進行本地動態(tài)調(diào)試。

圖1-24所示為一個基于SSM(Spring、SpringMVC、MyBatis)框架的簡單Java Web項目,在Controller層調(diào)用刪除賬戶方法的代碼行(第39行)設(shè)置一個斷點。

圖1-24 簡單Java Web項目

在IDEA中單擊“調(diào)試”按鈕開啟動態(tài)調(diào)試,打開瀏覽器可以看到如圖1-25所示的功能。

圖1-25 Java Web項目功能示意

單擊圖1-25中的任意一個“刪除”按鈕,打開IDEA,可以看到程序在斷點處(第39行)停下,并輸出參數(shù)值以及方法調(diào)用棧等信息,如圖1-26所示。

圖1-26 程序運行到斷點處

單擊Step Into按鈕(見圖1-27中的箭頭處),進行動態(tài)調(diào)試,跟進到了Service層的AccountServiceImpl接口實現(xiàn)類的deleteAccountById方法中,如圖1-27所示。

圖1-27 AccountServiceImpl.deleteAccountById方法

若繼續(xù)跟進調(diào)試,則會調(diào)用Dao層的相關(guān)方法,在此不展開。動態(tài)調(diào)試相比靜態(tài)審計的好處就是可以看到程序在運行之后,客戶端執(zhí)行的操作及參數(shù)在后端各層級的代碼中是如何傳遞、調(diào)用的,這非常有利于代碼審計者厘清程序邏輯。

主站蜘蛛池模板: 翁牛特旗| 旬邑县| 常德市| 陵川县| 阳朔县| 乐亭县| 雷州市| 临城县| 休宁县| 黄平县| 延寿县| 天峨县| 承德市| 明光市| 义马市| 蒲江县| 白朗县| 堆龙德庆县| 无为县| 卫辉市| 罗田县| 改则县| 乡城县| 剑阁县| 陈巴尔虎旗| 定日县| 昭觉县| 江西省| 栖霞市| 虎林市| 古丈县| 泗洪县| 邯郸市| 兰考县| 迁西县| 鞍山市| 衡阳市| 深水埗区| 大宁县| 城步| 甘孜县|