当前位置:  开发笔记 > 编程语言 > 正文

Flash/ActionScript 3.0中的StackTrace

如何解决《Flash/ActionScript3.0中的StackTrace》经验,为你挑选了3个好方法。

我想在我的代码的任何函数中看到堆栈跟踪,所以我做了这样的事情来调用它并打印堆栈跟踪:

public function PrintStackTrace() {
    try {
        throw new Error('StackTrace');
    } catch (e:Error) {
        trace(e.getStackTrace());
    }
}

我想知道是否有其他方法可以做到这一点.在某些地方,Error类创建堆栈跟踪,但也许它没有使用ActionScript 3.0,所以也许它不可行,但我想知道.

谢谢!



1> hasseg..:

据我所知,使堆栈跟踪可用于您自己的代码的唯一方法是通过Error类中的getStackTrace()方法,就像您已经在做的那样.但是,为了回答你问题中的例子,我要提到你实际上不必抛出错误 - 你可以创建它并在其上调用方法:

var tempError:Error = new Error();
var stackTrace:String = tempError.getStackTrace();

此外,与文档说的一样,这仅适用于Flash Player的调试版本,因此您可以将此功能包装在if-block中,以便在需要时检查Capabilities.isDebugger的值.


只需编写:`var stackTrace:String =(new Error()).getStackTrace();`甚至`trace("stack trace:"+(new Error()).getStackTrace()); `.

2> 小智..:

从Flash Player 11.5开始,堆栈跟踪也可以在非调试器版本的播放器中使用.



3> Joony..:

使用Flex SDK附带的Flex DeBugger(FDB).它是一个命令行调试器,允许您调试.swf,甚至是在线调试(如果它是调试版本).它允许您设置断点,打印/更改变量和转储堆栈,并且不需要您添加任何额外的代码.一个非常有用的工具,你不应该没有!

你需要的fdb选项是'break'并指定你想要执行停止的类和行,'bt'或'info stack'给你一个堆栈的回溯.您还可以在运行时显示有关应用程序的几乎所有内容.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有