【问题标题】:Haxe 3 returns empty CallStackHaxe 3 返回空的 CallStack
【发布时间】:2014-09-27 18:42:16
【问题描述】:

我正在关注 Franco Ponticelli 和 Lee McColl-Sylvester 所著的《Professional Haxe and Neko》一书。

第 7 章——当事情出错时是关于错误和异常的

当我按照 pg.192 中概述的代码(我在此处已最小化)时,我有

class CallStack {
    public static function main():Void {
        var i:Int = 0;
        i = multiply(i, 6);
    }

    public static function multiply(a,b) {
        return a * traceStack(b);
    }

    public static function traceStack(a) {
        var cs = haxe.CallStack.callStack();
        trace(haxe.CallStack.toString(cs));
        return a;
    }
}

当我编译这段代码时,它返回一个空的 callStack。

根据 Haxe API callStack() 函数

返回调用堆栈元素,如果不可用则返回空数组。

所以我的问题是这些,
为什么堆栈元素不可用?
还有什么会导致 callStack 函数返回一个空数组?
有没有更好的方法来检索这些信息?

【问题讨论】:

    标签: haxe callstack


    【解决方案1】:

    除非您在调试模式下运行,否则堆栈跟踪可能不可用。

    【讨论】:

    • True:haxe.CallStack.callStack() 函数仅在调试模式下可用。我处于调试模式,它仍然返回空。
    • 你编译的目标是什么?
    • 闪存。这是本书中列出的唯一可比较的示例输出。
    • 我刚刚运行了您的代码,并且确实获得了正确的调用堆栈,因此这可能是您的编译器或闪存调试设置方式的问题。
    猜你喜欢
    • 2011-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-23
    相关资源
    最近更新 更多