Studio 提供許多常常在集成開發環境 (IDE) 中找到的錯誤修改工具。這些工具幫助您解決錯誤並檢查指令碼線路-線-by-line隨著執行。錯誤修改資訊會顯示在 監視 , 呼叫堆 , 斷點 和 1>輸出1> 窗口,讓您可以檢查。
一般工作流程
如果您發現體驗中的問題或想要確認它們是否按照您的想法運行,您可以在以下方式查看有關該代碼的輸入碼:
在 Script 標籤中,單擊 播放 或 執行 在測試標籤中開始播測會作業,也稱為調試會作業。
當指令碼擊擊中斷點時,播放測試會暫停。 步驟通過代碼。 檢查 觀看 , 呼叫堆 和 輸出 窗口來幫助您診斷並了解問題。
在 指令碼 標籤中,按一下 停止 以結束調試會作業。
重複以前的步驟直到您解決問題或找到其根源原因。隨著您學習一般工作流程,您可以配置暫停點只會在某些條件下才會打印訊息到 輸出 窗口,並且僅在客戶端或伺服器上執行。為了更多資訊,請參閱 暫停點設定。
插入斷點
斷點是檢查點,會暫停或「休息」你的腳本在特定行上的執行。你可以使用暫停來檢查和調試你的體驗、觀看變量和檢查呼叫堆。斷點是最有效的調試工具之一,因此它是最重要的調試工具之一。你可以在任何執行可執行代碼的
要在代碼行中插入標準休息點,請按一下標準休息點的右邊緣。您也可以按一下標準休息點並按一下“插入休息點”。休息點會顯示為紅色點。若要停用它,請按一下紅點。
走過程式碼
如果您在指令碼本中插入了暫停點,腳本會在該暫停點執行之前暫停。黃色箭頭稱為「調試器」,指示哪一個代碼執行下一個。
當指令碼暫停時,您可以使用按鈕在 指令碼 標籤中踏過它們來執行一行代碼。按鈕也會在 呼叫堆 窗口的左上角出現。當您踏過按鈕時,記錄您的體驗是如何變化的,因為您將體驗到當前行正在執行。
下表總結了三種方法來踏過程式碼。若要繼續執行程式碼之後,請在 指令 標中斷點中按一下 繼續。
按鈕 | 行動 | 快捷方式 | 說明 |
---|---|---|---|
踏入 | F11 號碼 | 踏入按鈕將調試器移動到當前行中的函數碼。如果當前行中沒有函數,則會將調試器移動到下一行。 | |
跳過 | F10 | 跳過按鈕將調試器移動到下一個代碼行,而不是 移動 到函數。 | |
跳下來 | ShiftF11 | 步驟退出 按鈕將調試器從當前函數移動到下一個線碼後,在函數呼叫後。如果當前線不在函數內,則會將調試器移動到下一個線。 |
檢查代碼
當暫停時,觸試玩點會暫停體驗,你可以檢查觀看視窗、呼叫堆視窗、2>輸出視窗2>和5>指令編輯器5>來查找變數值和功能執行的信息。有了這些信息,你就可以找到問題的根本原因。
監視視窗
觀看 窗口有兩個標籤: 變量 和 我的觀看 。1>變量1> 標籤顯示範圍中的當前變量,而4>我的觀看4> 標籤顯示您定義的變數或表達值。兩個標籤都在行動前顯示信息。
變量 標籤有以下欄位:
- 名稱 – 變量的聲明名稱。
- 視野 – 變數的視野:在哪裡可以「被看到」並且存取,例如本地、全球或上值。
- 值 – 變數的當前值。
- 資料類型 – 變數的資料類型。
我的手錶 標籤有以下柱位:
- 表達式 – 您想要監看的表達式。
- 值 – 表達的當前值。
- 資料類型 – 表達的資料類型。
在 變量 標籤中,您可以按一下過濾圖示來過濾變量的範圍。您也可以按一下柱名排序表。觀看視窗提供兩種擴展和瓦解的表格。
要在監視視窗中檢查代碼:
如果 觀看 視窗未開啟,請在 檢視 標籤中按一下 觀看。
當您的遊戲測試會話中暫停時,請考慮您如何期望現有指令碼路改變指定值。
隨著您通過代碼走過時,注意變數的值在 變數 標籤中變化。如果您想監視不在 變數 標籤中的變數,請打開 我的手錶 標籤。單擊空白行在1>表示1>欄中,然後輸入4>表示
比較您期望和您在監視視窗中看到的變數和表達的值。如果您期望變數的變化方式與其實際變化方式之間發生了差異,則可能是變數或與它們交互的函數造成了問題或錯誤。
呼叫堆疊視窗
呼叫堆 窗口顯示程式碼在調試器到達交中斷點時會執行哪一個線的程式碼。 呼叫堆會指定哪一個線是從呼叫函數到達交換點時呼叫的程式碼,如果你在其他程式碼中呼叫程式碼,呼叫堆會指定程式碼的順序和程式碼的順序。 呼叫堆的上方是最後一個被稱
如果您在不同的脚本中有多個中斷點,它們可能會在同一時間暫停播放測試會話。您可以跳到中斷點,點擊調用堆叢窗口中的名稱。如果您單擊 繼續 ,您就會跳過所有暫停的中斷點。
要在調試時在 Call Stack 視窗作業檢查代碼:
如果 呼叫堆 窗口未打開,請在 檢視 標籤中按一下 呼叫堆。
當您的體驗在暫停時發生時,請考慮如何您期望功能呼叫的順序在那個指令碼中。
呼叫堆表示功能呼叫的順序。如果休息點位位於功能中,呼叫堆會顯示哪個呼叫該功能,如果任何。呼叫堆會也顯示每個功能的名稱和行號。單擊行以跳轉到任何功能。
比較您在步驟 2 中想像的功能呼叫的順序和步驟 3 的實際順序。如果存在任何不同,則會發生差異,這會導致潛在的問題和錯誤。
輸出視窗
輸出 窗口,可從 檢視 標籤存取,顯示從執行指令、來自 Roblox 引擎、print() 訊息、1>警告1> 訊息、4>來自呼叫4> 來自呼叫 7>print7> 和 9>warn9> 。
腳本編輯器
Debugger 集成在 指令編輯器 。當您在指指令碼中暫停時,您可以將鼠標擺動在變量名稱上,以查看其值。例如,您可以查看功能呼叫中傳入的表值。
關閉點設定
您可以設定斷點只會在某些條件下打印訊息到輸出窗口,並且僅在客戶端或伺服器上執行。您也可以將這些設定結合起來以最佳適合您的調試需求。
編輯關閉點
您可以隨時編輯休息點的設定,包括在遊戲測試會議中。如果您在遊戲測試會作業中編輯休息點,編輯將會在您完成後保持。您也可以編輯正在嚴重暫停您的遊戲測試會作業的休息點,但變更不適用於下一個遊戲測試作業。
要編輯休中斷點的設定:
右鍵點擊休中斷點,然後按一下 編輯休息點 。
在 編輯關卡 窗口中,配置關卡隨處。
條件、紀錄訊息和選項
對於每個暫停點,您可以設置其 狀態 、 記錄訊息 、 繼續執行 和1> 上下文1>。
條件 是決定是否啟動暫停點的表達。條件是可選的。如果條件為空,暫停點將永遠啟動。如果條件存在,則暫停點會僅在變數 <
記錄訊息 是指在條件是真的時,輸出窗口會打印的表達。 格式 記錄訊息 與 print() 指令相同。 例如,將 "The value of n:", n 指令設為 1>print("print()")1> 來輸出相同的訊息。 您可以
繼續執行 選項決定是否啟動時中斷腳本,如果啟動,它會暫停執行。這很有用,如果你想要記錄變數或表達式的值,而不是中斷執行。這個選項是預設值。
中斷點 的 上下文 決定要在客戶、伺服器或編輯中啟動中斷點。如果上下文是客戶,則會在客戶端腳本中觸發中斷點。如果上下文是服務器,則會在服務器端腳本中觸發中斷點。如果上下文是編輯,則會在編輯器端��
條件式休息點和輸出點
Studio 提供名稱的變更點,以提升變更點擷取速度。若要插入名稱的變更點,請以右鍵點擊其行號的右邊,然後按一下您想要插入的變更點。
條件變更點是一種條件變更點,具有 條件 和 繼續執行 功能已停用。條件變更點只會在您設定某些變量時才會暫停您的腳本,因此它們非常有用來調查函數如何在特定
A Log點 是一個休息點,具有 輸出窗口 和 繼續執行 功能。 Log點會將變量輸入到輸出窗口,而不會暫停您的腳本,因此它們對於調試變量值有用。當你插入 Log點時,您的指针會專注在 2>輸入窗口
記錄點通常比 print() 語句更有效率來調查變量,因為它們允許您將訊息寫入輸出窗口,而不用停止或重新啟動已啟用的播放測試會作業。與 print() 語句相比,它們能夠讓您的代碼在調試時保持清潔,並且在結束調試後更容易移除。
停用斷點
有許多方法可以禁用並重新啟用休中斷點:
- 點擊休中斷點的圖示。
- 編輯休息點並切換其啟用狀態。
- 右鍵點擊中斷點圖示,然後按一下「關閉中斷點」或「啟用中斷點」。
正在刪除休息點
要刪除中斷點,請按一下其圖示。您也可以右鍵點擊其圖示並按一下 刪除中斷點 。
斷點窗戶
斷點窗口顯示您體驗中的所有斷點。要開啟斷點窗口,請從 Studio 上方的檢視標籤按一下,然後按一下斷點。
暫停點窗口有以下柱:沒有標籤、腳本、行、源線、條件、記錄訊息和執行續埃。暫停點腳本和行柱永遠都會顯示,但您可以通過單擊窗口右上角的三個點來切換其他柱。
在未命名欄中,(x3) 標籤表示同一條代碼的中斷點數,並且標籤指示是否存在中斷點。 中斷點在同一條代碼上分享相同的條件、記錄訊息和繼續執行,但在上下文中各不相同。 您可以在暫停窗口中編輯暫停的設定。 例如,
您可以通過在啟用欄中的休息點圖示來啟用或禁用休息點。您也可以通過以下按鈕啟用、停用或刪除一些或所有休息點。
按鈕 | 行動 |
---|---|
停用所有斷點。如果有斷點被停用,請將它們全部啟用。 | |
刪除所有斷點。 |
斷點圖示
休息點的圖示取決於是否啟用、有條件和有日誌訊息。如果休息點有日誌訊息,則會無論條件是否啟用。
名稱 | 圖示 | 啟用 | 條件 | 紀錄訊息 |
---|---|---|---|---|
破損點 | 是 | 不 | 不 | |
不 | 不 | 不 | ||
條件式休息點 | 是 | 是 | 不 | |
不 | 是 | 不 | ||
記錄點 | 是 | 可能 | 是 | |
不 | 可能 | 是 |
額外的Debug工具
除了調試器外,Studio 提供給您更多的調試工具來修復您的體驗中的問題和錯誤。
指令欄
指令條 允許您在體驗執行 Luau 指令時運行。它可以在 Studio 的 檢視 標籤和 開發者控制器 中使用。
開發者控制器
開發者控制器 提供一個廣泛的細節,包括客戶端和服務器輸出、記憶體使用、網路性履約和更多。要開啟開發者控制器時測試或玩耍體驗,請在聊天內容輸入 /console 或按下 F9 。如需了解更多資訊,請參閱 1>開發者控制器
記錄檔案
當有腳本在 Studio 或玩家應用程App輸出錯誤時,應用程式會將訊息寫入本地檔案系統中的日誌檔案。這些檔案位於不同的位置,視乎操作系統。
Windows
要取得 Windows 上的日誌檔案:
- 開啟 檔案瀏覽器 .
- 移動到 %LOCALAPPDATA%\Roblox\logs 目錄。
- 雙擊樹腦開啟它。擁有相同 XXXXX 值的樹腦來自同一個 Studio 會作業。
Mac
要取得 Mac 上的日誌檔案:
- 開啟 尋找器 。
- 在選單欄中,選擇 去 > 去資料夾... 。
- 在對話框中,輸入 ~/Library/Logs/Roblox。
- 雙擊結果以導航到 Roblox 記錄目錄。
- 在目錄中,雙擊一個木頭以開啟它。
iOS
您可以使用 Mac 收集 iOS 日誌,或使用 iOS 裝置收集。
要在 Mac 上存取 iOS 紀錄檔案:
- 連接 iOS 裝置到 Mac。
- 開啟 尋找器 。
- 導航到 工具 並開啟 控制器 應用程序。
- 要在控制應用程式中填寫實時記錄,請從側邊欄中選擇 iOS 裝置,按一下 開始 按鈕,然後重製問題在 iOS 裝置上。
- 要在控制器應用程式中擷取已儲存的日誌,請在 sudo log collect --device-name "[iOS Device Name]" 中執行 sudo log collect -裝置名稱 在 Terminal 。確認裝置名稱中沒有任何字符串,否則在執行指令時可能會發生錯誤。
安드ロ
要取得 Android 上的日誌檔案:
- 導航到 設定 ILED 系統 ILED 開發者選項 。
- 切換 開發者選項 。
- 在電腦上下載並安裝 Android Studio。
- 在 Android Studio 中,按一下 Logcat 。
- 連接 Android 裝置到電腦,以便自動向 Logcat 輸入木頭。