2011-11-25 110 views
1

当我调试破损的代码时,一段时间后浏览器宣布Flash插件崩溃了,我无法继续调试我的代码。我能阻止浏览器杀死Flash吗?如何防止浏览器在调试时终止Flash插件

我正在使用Firefox。

+0

我一直有同样的问题。我通过从不调试冗长的代码块来修复它。但是,我没有注意到FF8的问题,所以也许你应该尝试升级 –

+0

@PranavHosangadi我也使用相同的浏览器,但崩溃。 – Exhausted

回答

-1

当插件崩溃时,事实上并非如此,因为浏览器正在“杀死”它,而是当发生致命错误时插件自行终止。这对于防止浏览器,甚至是整个机器崩溃都是必要的 - 在发生类似错误后,无法确定将发生什么。另外:在第一个未被捕获的错误之后,你的程序可能无法按照你想要的方式执行正确的代码,所以你不会通过继续破坏调试会话来做任何事情。所以这不是一个缺陷,它实际上是一件好事情!

但是,您可以做一些事情,以更有效地工作(并使您的程序更好)。我能想到的,现在最重要的是:

  • 了解如何使用好object-oriented programming技术和结识design patterns,如果你还没有这样做。

  • 要特别小心,以防止发生错误条件(访问其属性之前,如测试对象是否null,可能的情况下给予缺省值变量等)

  • 使用正确的error handling优雅地捕捉错误在运行时。

  • 使用unit tests彻底测试您的代码中的错误,一次一个错误,之前在浏览器中调试。了解FlexUnit是一个开始的好地方。

编辑

我也应该这样说:一个调试器是单步调试代码,以发现错误,的一个有用的工具,如变量没有被正确初始化或意外的返回值。当试图找出发生了什么时发生了一个致命错误 - 这也不会帮助您修复代码。

6

转到调试器的断点使插件“冻结”。这是故意的,毕竟它是一个断点!
但是,从浏览器的角度来看,插件似乎陷入了某种无限循环。超时值有所不同,我的Firefox安装设置为45秒。

要更改超时值,请在url字段中输入about:config并查找设置dom.ipc.plugins.timeoutSecs增加此设置或将其设置为-1以完全禁用超时。

+0

良好的洞察力,但我不得不说,在这个问题上“调试破碎的代码”令人困惑 - 我会很高兴删除我的答案,但如果是你投票的人,我会赞赏撤消。 – weltraumpirat

+0

+1给你哇它的工作原理,你可以解释它的无限循环是什么样的。 – Exhausted

相关问题