天堂123分類:天堂123新手區 天堂123玩家分享 天堂123私服技巧 天堂123架設教學 返回天堂123首頁
您当前位置: 天堂123 > 天堂架設 > 私服模擬器DEBUG除錯方法

私服模擬器DEBUG除錯方法

2022/6/6

自己寫的程式碼、別人寫的程式碼、運行過程中的狀態、變數的值變化…等等,如果直接運行(Run)程式,是無法在程式中間進行中斷(暫停)。
不懂?沒關係,讓我們看個簡單的例子:

在程式運行後,在console會看到輸出

J.J.
Morose
問題:

程式運行過第6行的後a的值為?
答:””;
程式運行過第8行的後a的值為?
答:”J.J”;
程式運行過第10行的後a的值為?
答:”Morose”;
註:天才的你一定會說,這些問題也太簡單了吧!

讓我們在看個複雜一點的<泡沫演算法>。

在程式運行後,console會看到輸出

[2, 3, 4, 5, 15, 19, 26, 27, 36, 38, 44, 46, 47, 48, 50]
一共比較了:95次
問題:<在不修改程式碼的情況下>

當count計算到第30次,此時的arr裡面的排序結果是?
答:[3, 5, 15, 36, 38, 26, 27, 2, 44, 4, 19, 46, 47, 48, 50]
註:如果你能白紙黑筆一步一步慢慢寫出來…哥給你跪。

到這邊應該知道在對程式碼做所謂的除錯(debug),運行中的情況狀態想要知道是有一定困難的。
在沒有所為的除錯模式之前,工程師們基本上都是透過System.out.print的方式將希望看見的值去做輸出。
後面會針對以上兩個例子做簡單的「除錯模式」使用的教學。

除錯模式
各位大神們,這邊並沒有把所有的功能、視窗、通通都教學出來,所以先別噴;這邊只是教一點簡簡單單的除錯模式,讓新手們有個入門。

除錯模式首先要知道的幾樣:

執行Run

執行程式,不理會任何斷點。
在哪邊可以找到這個按鈕?
右上角可以先選擇要執行的程式碼,在按右邊執行按鈕。
在程式內的點擊執行按鈕,選擇Run的部分。

除錯Debug

執行程式,遇到斷點會停在斷點位置上。
在哪邊可以找到這個按鈕?
右上角可以先選擇要執行的程式碼,在按右邊除錯按鈕。
在程式內的點擊執行按鈕,選擇Debug的部分。

斷點Breakpoint

針對程式的特定行做斷點註記,用於除錯模式時使用。
在哪邊可以設定這個斷點?
直接在想要斷點的那一行程式碼左邊行號欄上方左鍵點擊。

除錯模式下的視窗介紹、除錯基本用法:

視窗介紹
①Breakpoint:斷點,此時並高亮在此。
②Debug視窗:存取請求到達第一個斷點後,會自動啟用Debug視窗。
③Frames視窗:這裡顯示了該執行緒除錯所經過的方法。
④Variables視窗:在變數區可以檢視當前斷點之前的當前方法內的變數。
⑤除錯按鈕:除錯的主要功能就對應著這幾個按鈕,滑鼠懸停在按鈕上可以檢視對應的快捷鍵<下面基本用法只介紹五個按鈕>。
⑥服務按鈕:可以在這裡關閉/啟動服務,設定斷點等。

除錯按鈕
Show Execution Point:如果你的游標在其它行或其它頁面,點選這個按鈕可跳轉到當前程式碼執行的行。
Step Over:步過,一行一行地往下走,如果這一行上有方法不會進入方法。
Step Into:步入,如果當前行有方法,可以進入方法內部,一般用於進入自定義方法內,不會進入官方類庫的方法,如第25行的put方法。
Force Step Into:強制步入,能進入任何方法,檢視底層原始碼的時候可以用這個進入官方類庫的方法。
Step Out:步出,從步入的方法內退出到方法呼叫處,此時方法已執行完畢,只是還沒有完成賦值。

服務按鈕
Resume Program恢復程式,拿第一個例子說明,你在第6行和8行有兩個斷點,當前執行至第6行,按下該按鈕,則執行到下一個斷點(即第8行),再按下該按鈕,則執行完整個流程,因為後面已經沒有斷點了。
其他按鈕就不特別介紹。

斷點的狀態下
工作區內會鑲嵌提示

滑鼠停放在變數上亦會顯示其值

看了文字和圖還是不知道他們幹嘛用的?當然啊!還沒開始用嘛。
下面直接示範:

中斷點為第8、10行。

啟動除錯模式。

過程中Step Over步過,並觀察其a變數的值變化。


過程中Resume Program,並觀察Count到30。

觀察當前的arr的參數。


結語
對於除錯模式,不是一朝一夕就可以說完全部的功能,也不是說可以快速知道可以運用在哪邊,只有!親手下去試試看,最能有所體會。
希望透過上方的這些例子、說明和實際操作,可以讓新手們對所謂的除錯(Debug)有一定的了解。

如果想要更進一步了解可以上網查查看,有很多的教學文章影片我覺得都講的滿好的,可以多多參閱。
最後建議回顧一下首章天堂私服 | 天堂私服架設教學,了解其章結目錄。