【问题标题】:Debugging a flash stack overflow调试闪存堆栈溢出
【发布时间】:2017-03-23 09:31:27
【问题描述】:

我有一个由第三方 swf 加载的 swf。我有源代码并重新编译了我的 swf,但没有第三方 swf 的代码。

某处,可能在我的代码中,有一个堆栈溢出。在调试 Flash 播放器中,当溢出发生时,我会得到一个带有堆栈跟踪的漂亮弹出对话框:

Error: Error #1023: Stack overflow occurred.
    at Object$/Object::_hasOwnProperty()
    at Object/http://adobe.com/AS3/2006/builtin::hasOwnProperty()
    at Object$/Object::_hasOwnProperty()
    at Object/http://adobe.com/AS3/2006/builtin::hasOwnProperty()
    at Object$/Object::_hasOwnProperty()

64 行就这样。但是,看起来我只看到最后 64 个堆栈帧,而不是整个堆栈跟踪。

有没有办法查看完整的堆栈跟踪?作为替代方案,有没有办法限制堆栈深度?

我花了一整天的时间来调试它,但运行的信息很少,而且缺乏工具。这是我尝试过的:

  • 将我的代码连接到调试器。这是在虚拟机内的 windows 中运行的 flash 9.0.28 中,连接到在虚拟机外运行的 flex builder。它似乎已连接,但我没有收到跟踪语句,也没有触发断点。
  • 将日志行发送到 http 服务器。这可行,但我怀疑我错过了溢出/服务器崩溃之前的最后 n 个堆栈帧。
  • 一种禁用部分代码的盲目二进制搜索类型方法 - 这很慢,但可能会起作用。

我应该尝试其他策略吗?

【问题讨论】:

  • Flex Builder 的调试器的较新版本不再与 Flash Player 9.0.28 完全兼容。我相信您需要 9.0.115 或更高版本。

标签: flash actionscript-3 debugging actionscript flexbuilder


【解决方案1】:

this 听起来是不是同样的问题?抱歉,这不是关于如何进一步调试的直接答案,而是指向遇到类似问题并找到解决方案的人的指针。

【讨论】:

  • 您链接的页面被隐藏为注册墙。其他地方是否有相同的信息?因为现在,他们的注册服务器已经关闭,并且像大多数开发人员一样,我宁愿现在尝试修复我的错误!
猜你喜欢
  • 2010-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 2011-08-05
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
相关资源
最近更新 更多