debug

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Roblox でコードをデバッグするためのいくつかの基本機能を提供します。Lua のネイティブバージョンで見つかる debug ライブラリとは異なり、このバージョンは強力にサンドボックス化されています。

概要

関数

  • traceback(message : string,level : number):string

    現在の機能呼び出しスタックを説明する undefined 形式のストリングを返します。

  • traceback(thread : coroutine,message : string,level : number):string

    現在の機能呼び出しスタックを説明する undefined 形式のストリングを返します。

  • info(level : number,options : string):Tuple

    現在のスレッドのスタック全体を通過し、ターゲットレベルの詳細の呼び出しスタックを含む文字列を返します。

  • info(function : function,options : string):Tuple

    現在のスレッドのスタック全体を通過し、ターゲット機能の呼び出しスタックの詳細を含む文字列を返します。

  • info(thread : coroutine,level : number,options : string):Tuple

    ターゲットスレッドの全スタックを通過し、ターゲットレベルの詳細の呼び出しスタックを含む文字列を返します。

  • profilebegin(label : string):()

    ラベルのプロファイル化を開始します。

  • debug.profilebegin() が開いた最新ラベルのプロファイルを停止します。

  • 現在のスレッドのアクティブメモリカテゴリの名前を返します。

  • 現在のスレッドのメモリカテゴリにカスタムタグを割り当てます。

  • debug.setmemorycategory() に割り当てられたタグを自動割り当てられた値 (通常、スクリプト名) にリセットします。

  • 個々の機能とスクリプトのネイティブコードサイズのテーブルを表示します。

関数

traceback

現在の機能呼び出しスタックのトレースバックを文字列として返し、すなわち、この時点まで呼び出された機能の説明を返します。デバッグ中、これはエラースタックトレースのように動作しますが、スクリプトの実行を停止しません。

level パラメータは、考慮するコールスタックレベルを指定し、1 はコールの debug.traceback() 自体、2 は機能呼び出しの debug.traceback() 、などを指定します。以下のコードサンプルを参照して、順次機能呼び出しの例を見てください。

この機能は、不正確な結果 (オリジナルソースコードと比較) を頻繁に返し、返されたトレースバックの形式はいつでも変更される可能性があることに注意してください。スクリプト名や行番号などの特定の情報の返却値を解析してはならない ない こと。

次の例にはシーケンシャル機能呼び出しが含まれています; fnB() が呼び出され、そして fnA() が呼び出され、それから debug.traceback() が呼び出されます。


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- トレースバックを開始するには、fnB() 関数を呼び出す
fnB()

パラメータ

message: string

返された文字列の最初の行。

level: number

呼び出しスタックを「上」に返す呼び出し数。

既定値: 1

戻り値

現在の機能呼び出しスタックのトレースバック。

traceback

現在の機能呼び出しスタックのトレースバックを文字列として返し、すなわち、この時点まで呼び出された機能の説明を返します。デバッグ中、これはエラースタックトレースのように動作しますが、スクリプトの実行を停止しません。

level パラメータは、考慮するコールスタックレベルを指定し、1 はコールの debug.traceback() 自体、2 は機能呼び出しの debug.traceback() 、などを指定します。以下のコードサンプルを参照して、順次機能呼び出しの例を見てください。

この機能は、不正確な結果 (オリジナルソースコードと比較) を頻繁に返し、返されたトレースバックの形式はいつでも変更される可能性があることに注意してください。スクリプト名や行番号などの特定の情報の返却値を解析してはならない ない こと。

次の例にはシーケンシャル機能呼び出しが含まれています; fnB() が呼び出され、そして fnA() が呼び出され、それから debug.traceback() が呼び出されます。


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- トレースバックを開始するには、fnB() 関数を呼び出す
fnB()

パラメータ

thread: coroutine

coroutine.create() によって返されたスレッド。

message: string

返された文字列の最初の行。

level: number

呼び出しスタックを「上」に返す呼び出し数。

既定値: 1

戻り値

現在の機能呼び出しスタックのトレースバック。

info

呼び出しスタックのプログラマティック検査を許可します。この機能は、返すデータのフォーマットを保証する点で debug.traceback() と異なります。これは、一般的なログ記録とフィルタリングの目的だけでなく、クラッシュアグレゲーションなど、構造化入力を期待するシステムにデータを送信する目的にも役立ちます。


local function fnA()
-- 出力ソース識別子 ("s") と行 ("l") レベル 1 と 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

この機能は、同様の目的を果たす標準の Lua ライブラリの debug.getinfo と似ていることに注意してください。

パラメータ

level: number

呼び出しスタックのどのレベルで返された情報が記述する必要があるかを決定します。値 1 は、debug.info() を呼んでいる関数を表し、値 2 は、その関数を呼んだ関数を表し、など。

options: string

返された情報が何を表すべきかを説明する文字列。文字 slnaf の 0 または 1 個のインスタンスのみを含める必要があり、それぞれ情報の一部を表します:

  • s ( 文字列 ) — 機能ソース識別子、機能が定義されているスクリプトの全名と同等。
  • l ( 番号 ) — 関数呼び出しを表す level の行番号。
  • n ( 文字列 ) — 機能の名前; 割り当てられたデバッグ名がない無名の機能と C 機能には、nil が含まれる可能性があります。
  • a ( パラメータ数 , ブールン ) — 関数のアリティは、パラメータ数と関数が変数的かどうかを参照します。
  • f ( 機能 ) — 検査された機能。

戻り値

info

呼び出しスタックのプログラマティック検査を許可します。この機能は、返すデータのフォーマットを保証する点で debug.traceback() と異なります。これは、一般的なログ記録とフィルタリングの目的だけでなく、クラッシュアグレゲーションなど、構造化入力を期待するシステムにデータを送信する目的にも役立ちます。


local function fnA()
end
local function fnB()
end
-- fnA() と fnB() の両方に対する出力ライン ("l")、名前 ("n")、および識別子 ("f")
print(debug.info(fnA, "lnf")) --> 1 fnA 関数: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

この機能は、同様の目的を果たす標準の Lua ライブラリの debug.getinfo と似ていることに注意してください。

パラメータ

function: function

返された情報が記述する呼び出しスタックの機能。

options: string

返された情報が何を表すべきかを説明する文字列。文字 slnaf の 0 または 1 個のインスタンスのみを含める必要があり、それぞれ情報の一部を表します:

  • s ( 文字列 ) — 機能ソース識別子、機能が定義されているスクリプトの全名と同等。
  • l ( 番号 ) — function が定義されているライン。
  • n ( 文字列 ) — 機能の名前; 割り当てられたデバッグ名がない無名の機能と C 機能には、nil が含まれる可能性があります。
  • a ( パラメータ数 , ブールン ) — 関数のアリティは、パラメータ数と関数が変数的かどうかを参照します。
  • f ( 機能 ) — 検査された機能。

戻り値

info

呼び出しスタックのプログラマティック検査を許可します。この機能は、返すデータのフォーマットを保証する点で debug.traceback() と異なります。これは、一般的なログ記録とフィルタリングの目的だけでなく、クラッシュアグレゲーションなど、構造化入力を期待するシステムにデータを送信する目的にも役立ちます。


local function fnA()
-- 出力ソース識別子 ("s") と行 ("l") レベル 1 と 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

この機能は、同様の目的を果たす標準の Lua ライブラリの debug.getinfo と似ていることに注意してください。

パラメータ

thread: coroutine

coroutine.create() によって返されたスレッド。

level: number

呼び出しスタックのどのレベルで返された情報が記述する必要があるかを決定します。値 1 は、debug.info() を呼んでいる関数を表し、値 2 は、その関数を呼んだ関数を表し、など。

options: string

返された情報が何を表すべきかを説明する文字列。文字 slnaf の 0 または 1 個のインスタンスのみを含める必要があり、それぞれ情報の一部を表します:

  • s ( 文字列 ) — 機能ソース識別子、機能が定義されているスクリプトの全名と同等。
  • l ( 番号 ) — 関数呼び出しを表す level の行番号。
  • n ( 文字列 ) — 機能の名前; 割り当てられたデバッグ名がない無名の機能と C 機能には、nil が含まれる可能性があります。
  • a ( パラメータ数 , ブールン ) — 関数のアリティは、パラメータ数と関数が変数的かどうかを参照します。
  • f ( 機能 ) — 検査された機能。

戻り値

profilebegin

()

マイクロプロファイラ ラベルのプロファイリングを開始します。

パラメータ

label: string

この MicroProfiler ラベルが表示するテキスト。

戻り値

()

profileend

()

最新の MicroProfiler ラベルでプロファイリングを停止し、debug.profilebegin()開いたもの。

戻り値

()

getmemorycategory

現在のスレッドのアクティブメモリカテゴリの名前を返します。

戻り値

現在のスレッドのアクティブメモリカテゴリ。

setmemorycategory

開発者コンソール の現在のスレッドのメモリカテゴリにカスタムタグ名を割り当てます。同じスクリプト内の複数のスレッドのメモリ使用量を分析するのに便利で、通常は同じタグ/名前の下でグループ化されます。現在のスレッドの前のメモリカテゴリの名前を返します。

パラメータ

tag: string

戻り値

現在のスレッドの前のメモリカテゴリ。

resetmemorycategory

()

debug.setmemorycategory() に割り当てられたタグを自動割り当てられた値 (通常、スクリプト名) にリセットします。

戻り値

()

dumpcodesize

()

個々の機能とスクリプトのネイティブコードサイズのテーブルを表示します。この機能は、Studio のコマンドバーでのみ利用できます。詳細は、ネイティブコード生成 ページで見つけることができます。

戻り値

()