如何检测Flash运行时错误?

时间:2012-07-28 22:40:50

标签: actionscript-3 flash flex

我正在使用Flex SDK中的命令行工具开发AS3应用程序。我的工作流程是:

  1. 编写代码
  2. 使用mxmlc
  3. 进行编译
  4. 在收藏的webbrowser中运行SWF文件
  5. 重复
  6. 第二步捕获编译时错误,但运行时错误和警告呢?并trace()输出?我怎么能看到它?

    我没有使用任何具有调试功能的IDE。

3 个答案:

答案 0 :(得分:3)

获取Flash播放器和Firebug for Firefox的调试版本,然后您可以在控制台中查看跟踪和错误。

当发生未被异常处理程序捕获的运行时错误时,您将获得一个弹出窗口,告诉您错误。

为什么不获得http://www.flashdevelop.org/?它是免费的,它有调试,分析和IDE可以期待的所有其他好东西。

答案 1 :(得分:1)

虽然Flash调试器是一个不错的选择。我个人建议Monster Debugger。它是一个很棒的调试器,具有非常直观的用户界面,并且具有许多功能,使调试变得非常容易。

答案 2 :(得分:0)

Flash Player调试器将trace()的输出写入flashlog.txt文件。它的位置是硬编码的,在不同的系统上是不同的。在Linux上,它位于〜/ .macromedia / Flash_Player / Logs / flashlog.txt中。为了让调试器实际写入该文件,你需要另一个文件mm.cfg,它的位置和名称再次硬编码。它应该在〜/ mm.cfg中。它可能包含许多不同的选项,但您感兴趣的选项是ErrorReportingEnable=1

然后,您可以$ tail -f ~/.macromedia/Flash_Player/Logs/flashlog.txt查看文件写入时的进度。

请注意,运行播放器的用户必须可以写入目录和文件。如果不是这种情况,Flash播放器不会发出任何警告,并且会无声地失败。

另请注意,如果您碰巧使用的是Linux,那么就没有64位版本的调试器播放器...但是,播放器在Wine版本下运行得相当不错,即Windows版本。

您可以使用SDK中的命令行调试器进行调试。它被称为fdb(fdb.exe或Windows上的Apache Flex fdb.bat)。它类似于gdb接口,可以执行断点,一些运行时代码评估,反汇编函数,查找堆栈帧及其变量以及您期望调试器执行的大多数其他操作。我通常是从Emacs运行它,但我想从Vi [m]或你正在使用的任何编辑器运行它应该不是问题......

如果您使用的是Emacs,实际上可以将Flymake连接到SDK的一部分,在您键入时进行语法检查。您可以在此处找到有关如何执行此操作的详细信息:http://www.flashdevelop.org/community/viewtopic.php?f=13&t=9238(感谢Philippe)。