在没有调试器的情况下运行时获取闪存应用程序的堆栈跟踪

时间:2013-04-09 17:15:52

标签: actionscript-3 flash stack-trace

我正在尝试为我的应用程序创建崩溃报告。当游戏使用debug运行时,获取堆栈跟踪很容易:它包含在崩溃中创建的Error对象中。但是在没有调试的情况下运行时,缺少此信息。

有没有办法获取这些信息?

2 个答案:

答案 0 :(得分:0)

您可以在应用的可疑位置使用try-catch块。

try {
    ExternalInterface.call('conf', 4);
    ExternalInterface.addCallback('transcodeReqAnswer', analyseTranscodeAnswer);
} catch(er:Error) {
    debugTextField.text = er.getStackTrace();
}

答案 1 :(得分:0)

如果要在调试模式下编译,则必须通过ExternalInterface将参数传递给javascript。然后,您应该能够从浏览器的控制台输出中看到堆栈跟踪。

示例:

flash.system.Security.allowDomain(sourceDomain)
ExternalInterface.call("print", error.getStackTrace());

在JavaScript中应该有一个函数

function takeLog(string) {
    console.log("stacktrace: " + string);
}

在非调试模式下,getStackTrace()函数返回null。

官方文档中的更多信息, ExternalInterface.call()getStackTrace()