工作室提供許多在整合開發環境 (IDE) 中常見的偵錯工具。這些工具可幫助您解決錯誤,並在執行時線對線檢查腳本。偵錯信息會顯示在 觀看、呼叫堆、斷點 和 輸出 窗口中,供您檢查。
一般工作流程
如果您在體驗中發現問題或想確認它是否如您所意圖的那樣運作,您可以按照以下步驟來偵錯相關的代碼:
重複以前的步驟,直到您解決問題或找到其根源為止。當您學習一般工作流程時,您可以配置斷點,只有在滿足特定條件時才能打印訊息到輸出窗口,並只在客戶端或伺服器上運行。欲了解更多信息,請參閱斷點配置。
插入斷點
斷點是暫停或「破壞」執行您的腳本的特定線的檢查點。您可以使用暫停來檢查和調試您的體驗,觀看變量,並檢查呼叫堆。斷點是檢查功能的最有效方法之一,因此它們是最重要的檢查工具之一。您可以在執行代碼的任何行中插入暫停點。
要在代碼行中插入標準暫停點,請單擊代碼右側的邊緣。您也可以右鍵單擊邊緣並單擊「插入斷點」。斷點出現為紅色點。要停用它,請單擊點。

步驟通過代碼
如果您在指令碼本中插入暫停點,腳本會在執行該行之前暫停。黃色箭頭稱為「調試程式」,指示下一個執行的代碼行。

當腳本暫停時,使用 腳本 標籤中的按鈕一次執行下列代碼,每次一行,直到完成。按鈕也會出現在 呼叫堆 窗口的左上角。隨著您穿過代碼,監控當前線執行時您的體驗如何變化。

下表總結了步通過代碼的三種方法。若要在你擊中暫中斷點之後繼續執行你的代碼,請在 腳本 標籤中按一下 繼續 。
按鈕 | 行動 | 快捷方式 | 說明 |
---|---|---|---|
![]() | 步入 | F11 | 步入 按鈕將調試器移至當前行上的函數的代碼。如果當前線上沒有功能,調試器會移動到下一行。 |
![]() | 步過 | F10 | 步過 按鈕將調試器移至下一行代碼, 不移入函數。 |
![]() | 步出 | Shift F11 | 步出 按鈕將調試器從當前函數移出並移至函數呼叫後的下一行代碼。如果當前行不在函數內,則偵錯器移動到下一行。 |
檢查代碼
當暫停點在試玩期間停止體驗時,您可以檢查觀看窗口、呼叫堆窗口、輸出窗口和腳本編輯器窗口,以查找變量值和函數執行的信息。有了這些資訊,您就可以找到體驗中問題的根源。
觀看
觀看 窗口有兩個標籤: 變量 和 我的觀看 。變量 標籤 顯示範圍內的當前變量資訊,而 我的觀看 標籤顯示您定義的變量或式值。兩個標籤都會在行執行之前顯示資訊。
變量 標籤 有以下欄位:
名稱 – 變量的宣言名稱。
範圍 – 變量的範圍:可以「看到」和訪問的地方,例如本地、全球或上值。
值 – 變量目前的值。
資料類型 – 變數的資料類型。 我的手錶 標籤有以下欄位:
表達 – 您想要監看的表達。
值 – 目前表達式的值。
數據類型 – 式的數據類型。
在 變量 標籤中,您可以通過單擊過濾器圖示來過濾變量範圍。您也可以通過單擊欄位名稱來排序行。監視窗提供擴展和縮小的表視圖。

要在觀看窗口中檢查代碼:
如果 觀看 窗口未開啟,請在 觀看 標籤中單擊 觀看。
當你的遊戲測試會話在暫停中斷點停止時,請考慮你如何希望現有線變更該腳指令碼中變量的值。
當您步過代碼時,觀察變量值在 變量 標籤中如何變更。如果您想查看變數標籤中未包含的表達式,請開啟 我的觀看 標籤。在表達列中單擊空行,然後輸入表達式到其中。如果您想在腳本編輯器中觀看變量,請單擊變量名稱,右鍵單擊,然後單擊 添加觀看 。
比較變量和式值與你在觀察視窗中看到的值進行比較。如果變量的變更方式與您預期的變更方式之間存在差異,且它們實際上發生了變化,那麼變量或與它們互動的函數可能會導致問題或錯誤。
呼叫堆
呼叫堆窗口顯示當調試器達到中斷點時將執行哪一行代碼下一次。呼叫堆指示您從哪一行呼叫函數,如果您在其他函數中呼叫函數,則呼叫函數的順序和您呼叫其他函數的線。呼叫堆的最高功能是最後呼叫且第一執行的。您可以使用呼叫堆來檢查您的腳本中功能呼叫的順序是否與您的功能呼叫模型相符。

如果你在不同的腳本中有多個斷點,它們可能會在同一時間暫停播放測試會話。您可以單擊呼叫堆窗口中的腳本名稱旁的箭頭,跳到斷點。如果您按一下 繼續 ,則您會跳過所有在同一時間暫停的斷點。

要在審查會作業期間在呼叫堆窗口中檢查代碼:
如果 呼叫堆 窗口未開啟,請在 視圖 標籤中單擊 呼叫堆。
當您的體驗在暫停點停中斷點時,請考慮您希望功能呼叫順序在該指令碼中如何排列。
呼叫堆顯示功能呼叫的順序。如果斷點位於函數內,呼叫堆會顯示哪個函數呼叫該函數,如果有。呼叫堆也顯示每個函數的名稱和行號碼。點擊行以跳到它的函數。
比較你在步驟 2 中想到的功能呼叫順序和步驟 3 的實際順序。如果存在任何差異,則會在你期望代碼行為方式與實際行為方式之間產生差異,因此會導致潛在問題和錯誤。
輸出
從 視圖 標籤可存取的輸出窗口,顯示從執行腳本中捕捉到的錯誤、來自 Roblox 引擎的訊息、來自呼叫 的訊息、來自呼叫 print() 的錯誤以及來自呼叫 warn() 的錯誤。
腳本編輯器
調試器與 腳本編輯器 整合。當您的體驗在腳指令碼中暫停在某個節點時,您可以將鼠標懸停在變量名稱上,查看其值。例如,您可以查看傳送到函數呼叫中的表值作為參數的表。

斷點配置
您可以配置斷點,只有在滿足特定條件時才打印到 輸出 窗口,並只在客戶端或伺服器上運行。您也可以將這些配置混合在一起,以最適合您的調試需求。
編輯斷點
您可以隨時編輯中斷點的配置,包括在遊戲測試期間。如果你在遊戲測作業期間編輯斷點,編輯將持續存在,即使你已經結束它。您也可以編輯正在暫停您的遊戲測試會作業的暫停點,但變更不會在下一個遊戲測試會作業中生效。
要編輯停止點的配置:
右鍵單擊中斷點,然後單擊 編輯斷點 。
在 編輯斷點 窗口中,配置斷點以您所需的方式。
條件、記錄訊息和選項
對於每個中斷點,您可以設置其 條件 、 記錄訊息 、 繼續執行 和 上下文 。 條件 是決定是否啟用斷點的表達式。條件是可選的。如果條件是空的,斷點總是會激活。如果條件存在,則斷點只會在條件是真實的情況下啟用。例如,如果你只希望斷點激活,如果變量 n 等於 42,則設置條件為 n == 42。條件對於檢查函數在特定變量具有特定值或在迴圈中只在特定執行中斷有用,如果您想要在迴圈中只在特定執行中斷,則這很有用。 記錄訊息 是當條件為真時輸出到輸出窗口的式子。記錄訊息的格式與 print() 聲明的參數相同。例如,將記錄訊息設為 "The value of n:", n 來列印與 print("The value of n:", n) 相同的訊息。您可以不需要停止執行來添加和移除記錄訊息,與列印聲明不同。 繼續執行 選項決定是否在啟用時暫停腳本。如果您想在執行停止前記錄變量或式的值,這很有用。此選項預設為停用。
破壞點的 上下文 決定破壞點是否應在客戶端、伺服器或編輯中啟用。如果上下文是客戶端,則在客戶端腳本中觸發斷點。如果上下文是伺服器,則在服務器側腳本中會触發暫停點。如果上下文是編輯,則在您偵錯插件時會触發暫停點。如果您按一下「自訂上下文」,窗口會指示當前上下文。

條件性斷點和記錄點
工作室提供命名的斷點變化,以加快斷點插入速度。要插入命名變體,右鍵單擊其線號右側的邊緣,然後單擊您想要插入的變體。

一個 條件性斷點 是一個斷點,具有 條件 和 繼續執行 被禁用。條件破點只有在條件是真實的情況下才會暫停您的腳本,因此它們對於確認特定變量具有特定值時如何執行函數很有用。條件性斷點使用線執行前變量的值。當你插入條件斷點時,你的鼠標會專注在 條件 選項上,讓你快速設定。
A 記錄點 是啟用了 記錄訊息 和 繼續執行 的斷點。在暫停您的腳本的情況下將記錄點記錄訊息寫入 輸出 窗口,因此它們對變量值的調試有用。記錄點使用線執行前變量的值。當你插入一個記錄點時,你的鼠標會專注在 記錄訊息 上,讓你快速設定它。
停用斷點
有許多方法可以禁用和重新啟用暫中斷點:
- 點擊中斷點的圖示。
- 編輯斷點並切換其啟用檢查箱。
- 右鍵單擊暫停點圖示,然後單擊停用暫停點或啟用暫停點。
刪除斷點
若要刪除暫中斷點,請單擊其圖示中的中間按鈕。您也可以右鍵單擊其圖示並點擊 刪除暫停點 。
斷點窗口
斷點窗口顯示您體驗中的所有斷點。要開啟斷點窗口,請在 Studio 頂部單擊檢視標籤,然後單擊斷點。

斷點窗口有以下欄位:未命名、腳本、行、來源行、條件、記錄訊息和繼續執行。未命名的、腳本和行列總是顯示,但您可以通過單擊窗口右上角的三個點來切換其他列。
在未命名列中,(x3)標籤表示同一行代碼上的斷點數量,圖示表示斷點配置。相同線上的斷點共享相同的狀態、記錄訊息和繼續執行,但在上下文中各不相同。您可以在「破壞點」視窗中編輯破壞點的配置。例如,您可以編輯斷點的條件,編輯其條件欄中的文字區域。

您可以通過點擊啟用和禁用斷點的斷點圖標來啟用或禁用斷點。您也可以點擊以下按鈕來啟用、停用和刪除一些或所有的斷點。
按鈕 | 行動 |
---|---|
![]() | 停用所有斷點。如果任何斷點被禁用,請啟用所全部 所有斷點。 |
![]() | 刪除所有斷點。 |
斷點圖示
破點的圖示取決於是否啟用、是否有條件和是否有記錄訊息。如果斷點具有記錄訊息,則無論是否具有條件,都會顯示為記錄點。
名稱 | 圖示 | 已啟用 | 條件 | 記錄訊息 |
---|---|---|---|---|
斷點 | ![]() | 是 | 否 | 否 |
![]() | 否 | 否 | 否 | |
條件斷點 | ![]() | 是 | 是 | 否 |
![]() | 否 | 是 | 否 | |
記錄點 | ![]() | 是 | 可能 | 是 |
![]() | 否 | 可能 | 是 |
額外的偵錯工具
除了調試器外,Studio 還為您提供額外的調試工具來解決體驗中的問題和錯誤。
指令欄
指令欄 允許您在體驗運行期間執行 Luau 指令。它可以在 Studio 的 檢視 標籤和 開發者控制台 中使用。
開發者控制台
開發者控制台 提供了廣泛的詳細信息,包括客戶端和服務器輸出、記憶使用、網絡履約等等 要在測試或玩體驗時開啟開發者控制台,請輸入 /console 到聊天或按下 F9 。了解更多信息,請參閱開發者控制台。
記錄檔案
當腳本在 Studio 或玩家應用程App中列印或發生錯誤時,應用程式會將訊息記錄在本地檔案系統的記錄檔案中。這些檔案會依照操作系統的不同位置存在。
窗戶
要在 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]" 中執行 **** 。請確保裝置名稱中沒有 apostrophes,否則執行指令時可能會發生錯誤。
Android
要在 Android 上存取記錄檔案:
- 導航到 設定 > 系統 > 開發者選項 。
- 切換 開發者選項 。
- 在電腦上,下載並安裝 Android Studio。
- 在 Android Studio 中,單擊 Logcat 。
- 將 Android 裝置連接到電腦,自動將日誌填滿日誌以填充日誌。