調試

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

Studio 提供許多常常在集成開發環境 (IDE) 中找到的錯誤修改工具。這些工具幫助您解決錯誤並檢查指令碼線路-線-by-line隨著執行。錯誤修改資訊會顯示在 監視 , 呼叫堆 , 斷點 和 1>輸出1> 窗口,讓您可以檢查。

一般工作流程

如果您發現體驗中的問題或想要確認它們是否按照您的想法運行,您可以在以下方式查看有關該代碼的輸入碼:

  1. 在 Script 標籤中,單擊 播放 或 執行 在測試標籤中開始播測會作業,也稱為調試會作業。

    Playtest options in Script tab.
  2. 當指令碼擊擊中斷點時,播放測試會暫停。 步驟通過代碼。 檢查 觀看呼叫堆輸出 窗口來幫助您診斷並了解問題。

  3. 在沒有執行的代碼行中插入額外的暫停點來檢查額外的資料。 關閉刪除 暫停點,如果您不再需要它們。

  4. 指令碼 標籤中,按一下 停止 以結束調試會作業。

重複以前的步驟直到您解決問題或找到其根源原因。隨著您學習一般工作流程,您可以配置暫停點只會在某些條件下才會打印訊息到 輸出 窗口,並且僅在客戶端或伺服器上執行。為了更多資訊,請參閱 暫停點設定

插入斷點

斷點是檢查點,會暫停或「休息」你的腳本在特定行上的執行。你可以使用暫停來檢查和調試你的體驗、觀看變量和檢查呼叫堆。斷點是最有效的調試工具之一,因此它是最重要的調試工具之一。你可以在任何執行可執行代碼的

要在代碼行中插入標準休息點,請按一下標準休息點的右邊緣。您也可以按一下標準休息點並按一下“插入休息點”。休息點會顯示為紅色點。若要停用它,請按一下紅點。

Breakpoint in gutter is a red dot

走過程式碼

如果您在指令碼本中插入了暫停點,腳本會在該暫停點執行之前暫停。黃色箭頭稱為「調試器」,指示哪一個代碼執行下一個。

Active breakpoint in the debugger shows yellow arrow

當指令碼暫停時,您可以使用按鈕在 指令碼 標籤中踏過它們來執行一行代碼。按鈕也會在 呼叫堆 窗口的左上角出現。當您踏過按鈕時,記錄您的體驗是如何變化的,因為您將體驗到當前行正在執行。

Debugging tools indicated in Script tab

下表總結了三種方法來踏過程式碼。若要繼續執行程式碼之後,請在 指令 標中斷點中按一下 繼續。

按鈕行動快捷方式說明
Button to step into a line of code 踏入 F11 號碼踏入按鈕將調試器移動到當前行中的函數碼。如果當前行中沒有函數,則會將調試器移動到下一行。
Button to step over a line of code 跳過 F10跳過按鈕將調試器移動到下一個代碼行,而不是 移動 到函數。
Button to step out of a line of code 跳下來 ShiftF11步驟退出 按鈕將調試器從當前函數移動到下一個線碼後,在函數呼叫後。如果當前線不在函數內,則會將調試器移動到下一個線。

檢查代碼

當暫停時,觸試玩點會暫停體驗,你可以檢查觀看視窗、呼叫堆視窗、2>輸出視窗2>和5>指令編輯器5>來查找變數值和功能執行的信息。有了這些信息,你就可以找到問題的根本原因。

監視視窗

觀看 窗口有兩個標籤: 變量我的觀看 。1>變量1> 標籤顯示範圍中的當前變量,而4>我的觀看4> 標籤顯示您定義的變數或表達值。兩個標籤都在行動前顯示信息。

變量 標籤有以下欄位:

  • 名稱 – 變量的聲明名稱。
  • 視野 – 變數的視野:在哪裡可以「被看到」並且存取,例如本地、全球或上值。
  • 值 – 變數的當前值。
  • 資料類型 – 變數的資料類型。

我的手錶 標籤有以下柱位:

  • 表達式 – 您想要監看的表達式。
  • 值 – 表達的當前值。
  • 資料類型 – 表達的資料類型。

變量 標籤中,您可以按一下過濾圖示來過濾變量的範圍。您也可以按一下柱名排序表。觀看視窗提供兩種擴展和瓦解的表格。

Watch Window with variable values

要在監視視窗中檢查代碼:

  1. 如果 觀看 視窗未開啟,請在 檢視 標籤中按一下 觀看

  2. 當您的遊戲測試會話中暫停時,請考慮您如何期望現有指令碼路改變指定值。

  3. 隨著您通過代碼走過時,注意變數的值在 變數 標籤中變化。如果您想監視不在 變數 標籤中的變數,請打開 我的手錶 標籤。單擊空白行在1>表示1>欄中,然後輸入4>表示

  4. 比較您期望和您在監視視窗中看到的變數和表達的值。如果您期望變數的變化方式與其實際變化方式之間發生了差異,則可能是變數或與它們交互的函數造成了問題或錯誤。

呼叫堆疊視窗

呼叫堆 窗口顯示程式碼在調試器到達交中斷點時會執行哪一個線的程式碼。 呼叫堆會指定哪一個線是從呼叫函數到達交換點時呼叫的程式碼,如果你在其他程式碼中呼叫程式碼,呼叫堆會指定程式碼的順序和程式碼的順序。 呼叫堆的上方是最後一個被稱

Call Stack in Studio

如果您在不同的脚本中有多個中斷點,它們可能會在同一時間暫停播放測試會話。您可以跳到中斷點,點擊調用堆叢窗口中的名稱。如果您單擊 繼續 ,您就會跳過所有暫停的中斷點。

Call Stack with multiple breakpoints

要在調試時在 Call Stack 視窗作業檢查代碼:

  1. 如果 呼叫堆 窗口未打開,請在 檢視 標籤中按一下 呼叫堆

  2. 當您的體驗在暫停時發生時,請考慮如何您期望功能呼叫的順序在那個指令碼中。

    Script Editor with two functions and one breakpoint
  3. 呼叫堆表示功能呼叫的順序。如果休息點位位於功能中,呼叫堆會顯示哪個呼叫該功能,如果任何。呼叫堆會也顯示每個功能的名稱和行號。單擊行以跳轉到任何功能。

    Click in Call Stack to jump to line
  4. 比較您在步驟 2 中想像的功能呼叫的順序和步驟 3 的實際順序。如果存在任何不同,則會發生差異,這會導致潛在的問題和錯誤。

輸出視窗

輸出 窗口,可從 檢視 標籤存取,顯示從執行指令、來自 Roblox 引擎、print() 訊息、1>警告1> 訊息、4>來自呼叫4> 來自呼叫 7>print7> 和 9>warn9> 。

腳本編輯器

Debugger 集成在 指令編輯器 。當您在指指令碼中暫停時,您可以將鼠標擺動在變量名稱上,以查看其值。例如,您可以查看功能呼叫中傳入的表值。

Mouseover a variable in Script Editor to show value

關閉點設定

您可以設定斷點只會在某些條件下打印訊息到輸出窗口,並且僅在客戶端或伺服器上執行。您也可以將這些設定結合起來以最佳適合您的調試需求。

編輯關閉點

您可以隨時編輯休息點的設定,包括在遊戲測試會議中。如果您在遊戲測試會作業中編輯休息點,編輯將會在您完成後保持。您也可以編輯正在嚴重暫停您的遊戲測試會作業的休息點,但變更不適用於下一個遊戲測試作業。

要編輯休中斷點的設定:

  1. 右鍵點擊休中斷點,然後按一下 編輯休息點

    Right click to edit a breakpoint in Studio
  2. 編輯關卡 窗口中,配置關卡隨處。

    Edit Breakpoint window in Studio

條件、紀錄訊息和選項

對於每個暫停點,您可以設置其 狀態記錄訊息繼續執行 和1> 上下文1>。

條件 是決定是否啟動暫停點的表達。條件是可選的。如果條件為空,暫停點將永遠啟動。如果條件存在,則暫停點會僅在變數 <

記錄訊息 是指在條件是真的時,輸出窗口會打印的表達。 格式 記錄訊息 與 print() 指令相同。 例如,將 "The value of n:", n 指令設為 1>print("print()")1> 來輸出相同的訊息。 您可以

繼續執行 選項決定是否啟動時中斷腳本,如果啟動,它會暫停執行。這很有用,如果你想要記錄變數或表達式的值,而不是中斷執行。這個選項是預設值。

中斷點 的 上下文 決定要在客戶、伺服器或編輯中啟動中斷點。如果上下文是客戶,則會在客戶端腳本中觸發中斷點。如果上下文是服務器,則會在服務器端腳本中觸發中斷點。如果上下文是編輯,則會在編輯器端��

Edit Breakpoint Window shows Custom Context

條件式休息點和輸出點

Studio 提供名稱的變更點,以提升變更點擷取速度。若要插入名稱的變更點,請以右鍵點擊其行號的右邊,然後按一下您想要插入的變更點。

Right click to insert a breakpoint

條件變更點是一種條件變更點,具有 條件繼續執行 功能已停用。條件變更點只會在您設定某些變量時才會暫停您的腳本,因此它們非常有用來調查函數如何在特定

A Log點 是一個休息點,具有 輸出窗口 和 繼續執行 功能。 Log點會將變量輸入到輸出窗口,而不會暫停您的腳本,因此它們對於調試變量值有用。當你插入 Log點時,您的指针會專注在 2>輸入窗口

記錄點通常比 print() 語句更有效率來調查變量,因為它們允許您將訊息寫入輸出窗口,而不用停止或重新啟動已啟用的播放測試會作業。與 print() 語句相比,它們能夠讓您的代碼在調試時保持清潔,並且在結束調試後更容易移除。

停用斷點

有許多方法可以禁用並重新啟用休中斷點:

  • 點擊休中斷點的圖示。
  • 編輯休息點並切換其啟用狀態。
  • 右鍵點擊中斷點圖示,然後按一下「關閉中斷點」或「啟用中斷點」。

正在刪除休息點

要刪除中斷點,請按一下其圖示。您也可以右鍵點擊其圖示並按一下 刪除中斷點

斷點窗戶

斷點窗口顯示您體驗中的所有斷點。要開啟斷點窗口,請從 Studio 上方的檢視標籤按一下,然後按一下斷點。

Breakpoints window in Studio

暫停點窗口有以下柱:沒有標籤、腳本、行、源線、條件、記錄訊息和執行續埃。暫停點腳本和行柱永遠都會顯示,但您可以通過單擊窗口右上角的三個點來切換其他柱。

在未命名欄中,(x3) 標籤表示同一條代碼的中斷點數,並且標籤指示是否存在中斷點。 中斷點在同一條代碼上分享相同的條件、記錄訊息和繼續執行,但在上下文中各不相同。 您可以在暫停窗口中編輯暫停的設定。 例如,

Edit the Condition of a Breakpoint in the Breakpoints Window

您可以通過在啟用欄中的休息點圖示來啟用或禁用休息點。您也可以通過以下按鈕啟用、停用或刪除一些或所有休息點。

按鈕行動
Button to disable all breakpoints停用所有斷點。如果有斷點被停用,請將它們全部啟用。
Button to delete all breakpoints刪除所有斷點。

斷點圖示

休息點的圖示取決於是否啟用、有條件和有日誌訊息。如果休息點有日誌訊息,則會無論條件是否啟用。

名稱圖示啟用條件紀錄訊息
破損點
條件式休息點
記錄點可能
可能

額外的Debug工具

除了調試器外,Studio 提供給您更多的調試工具來修復您的體驗中的問題和錯誤。

指令欄

指令條 允許您在體驗執行 Luau 指令時運行。它可以在 Studio 的 檢視 標籤和 開發者控制器 中使用。

開發者控制器

開發者控制器 提供一個廣泛的細節,包括客戶端和服務器輸出、記憶體使用、網路性履約和更多。要開啟開發者控制器時測試或玩耍體驗,請在聊天內容輸入 /console 或按下 F9 。如需了解更多資訊,請參閱 1>開發者控制器

記錄檔案

當有腳本在 Studio 或玩家應用程App輸出錯誤時,應用程式會將訊息寫入本地檔案系統中的日誌檔案。這些檔案位於不同的位置,視乎操作系統。

Windows

要取得 Windows 上的日誌檔案:

  1. 開啟 檔案瀏覽器 .
  2. 移動到 %LOCALAPPDATA%\Roblox\logs 目錄。
  3. 雙擊樹腦開啟它。擁有相同 XXXXX 值的樹腦來自同一個 Studio 會作業。

Mac

要取得 Mac 上的日誌檔案:

  1. 開啟 尋找器
  2. 在選單欄中,選擇 > 去資料夾...
  3. 在對話框中,輸入 ~/Library/Logs/Roblox
  4. 雙擊結果以導航到 Roblox 記錄目錄。
  5. 在目錄中,雙擊一個木頭以開啟它。

iOS

您可以使用 Mac 收集 iOS 日誌,或使用 iOS 裝置收集。

要在 Mac 上存取 iOS 紀錄檔案:

  1. 連接 iOS 裝置到 Mac。
  2. 開啟 尋找器
  3. 導航到 工具 並開啟 控制器 應用程序。
  4. 要在控制應用程式中填寫實時記錄,請從側邊欄中選擇 iOS 裝置,按一下 開始 按鈕,然後重製問題在 iOS 裝置上。
  5. 要在控制器應用程式中擷取已儲存的日誌,請在 sudo log collect --device-name "[iOS Device Name]" 中執行 sudo log collect -裝置名稱 在 Terminal 。確認裝置名稱中沒有任何字符串,否則在執行指令時可能會發生錯誤。

安드ロ

要取得 Android 上的日誌檔案:

  1. 導航到 設定 ILED 系統 ILED 開發者選項
  2. 切換 開發者選項
  3. 在電腦上下載並安裝 Android Studio
  4. 在 Android Studio 中,按一下 Logcat
  5. 連接 Android 裝置到電腦,以便自動向 Logcat 輸入木頭。