debug_get_callstack

此函数生成一个字符串数组作为" 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可选返回的调用栈的最大深度

 

返回:

Array

 

示例:

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。