此函数生成一个字符串数组作为" callstack ",其中首先列出当前脚本,然后列出为执行当前脚本而运行的所有其他脚本。确切的字符串格式将根据所选的目标平台而有所不同,但大多数情况下,它将具有脚本/事件名称,然后是冒号:和行号,类似于:
"gml_Script_script2:1"
"gml_Script_script1:32"
"gml_Script_script0:64"
"gml_Object_object0_Create_0:1"
该函数允许传入一个可选参数,该参数是返回的调用堆栈的最大深度。此值是从当前脚本开始返回的数组中包含的脚本数。如果未指定此参数,则将返回完整的调用堆栈。
请注意,在列出调用堆栈脚本后,返回的数组在其最后一个位置始终包含0。
debug_get_callstack([maxdepth])
参数 | 类型 | 描述 |
---|---|---|
[maxdepth] | Real | 可选返回的调用栈的最大深度 |
if (debug_mode)
{
if (keyboard_check(vk_escape))
{
var _a = debug_get_callstack(4);
for (var i = 0; i < array_length_id(_a); ++i;)
{
show_debug_message(_a[i]);
}
}
}
上述代码检查调试模式是否启用,如果启用,则检查键是否被按下。在这种情况下,它将当前调用栈输出到控制台,最大深度为4。