FlashDevelop调试器问题

4
像官方网站和此主题所说的那样,FlashDevelop带有一个调试器。但是对于我来说,它并不总是有效。
我从CS切换到了FlashDevelop,并开始使用与CS一起使用的工作流程,如FlashCS3Workflow 所示。然后我想尝试下这个工作流程:FlexAndFlashCS3Workflow,并且一切正常。但随着项目的增长,调试器有时会失效。
即使现在,在程序开头使用的某些类中可以设置断点,但如果在某个小型或很少使用的类中设置断点,则永远不会触发。但是会执行其中断点所在的代码。
我尝试了Debug -> Start Remote Session,但没有帮助。为什么断点没有被触发呢?我认为我在工作流程或项目设置方面错过了什么,但是什么呢?
上面的示例适用于CS3,而我正在使用CS5,这是问题所在吗?我还下载了Adobe Flash Player Debugger并安装了它,但是没有帮助。有什么想法吗?
4个回答

1

我曾经遇到过FlashDevelop无法命中断点的问题。我安装了Flash的试用版,然后将swf文件的默认程序设置为Flash调试器播放器。这个播放器位于adobe/(adobe flash)/players/debug/FlashPlayerDebugger.exe

我不知道这是否对你遇到的问题有所帮助,因为我一开始根本无法命中断点,但也许可以帮助其他人解决问题。

编辑: 我还发现,如果安装FlexSDK,它会自带FlashPlayerDebugger.exe,在FlashDevelop调试时使用。


1

我也遇到了同样的问题。

这个问题非常讨厌 - DoomGoober发布的解决方法对我也不起作用。

到目前为止,我的发现是:

A 如果源代码的一部分位于实际上是符号链接的文件夹中,并且在移动或重命名文件后忘记刷新项目视图,则会出现此问题。

B 第一次真正困扰我的时候,我淘汰了所有未指定类型的类引用(例如 var obj:* = ...),并将它们替换为 Object 类型引用(例如 var obj:Object = ...)。 (因为我之前注意到,在 .swc 中使用 Vector.<*> 类型时会出现其他奇怪的错误 - 我首先淘汰了它们)。 那似乎有所帮助。

C 然而,后来问题又出现了。 迄今为止,我可以“修复”它的方法是: 我知道很难相信 - 如果我没有经过可重复测试,我几乎无法相信它:

  1. 我将整个项目文件夹(包括源代码等)复制到了一个USB驱动器(E:盘,源代码原本是在我的硬盘D:盘上)。
  2. 从E:盘中打开项目并在那里构建(很慢但没关系)。
  3. 然后调试器可以正常工作。
  4. 关闭FlashDevelop。
  5. 将文件夹树从E:盘复制回D:盘。
  6. 调试器仍然可以正常工作。-问题“解决”了吗?

注意:我尝试将其复制到另一个硬盘(我的F:盘),但那种方法行不通!

这听起来有点模糊和玄妙,但比无法进入一半的类要好得多。希望它能继续工作下去。


1
谢谢你的帮助。我会尝试使用方法C来打开一些旧项目。我已经转换到仅使用FD(没有CS,没有符号,组合代替继承),调试器工作正常。 - Mentoliptus
你认为这个为什么能够工作?你认为Flash在C盘上构建文件时出了问题吗?你认为以管理员身份运行Flash会解决这个问题吗?我模糊地记得在这个问题发生之前,我不小心将一个文件拖到了FlashDevelop中相邻的文件夹中...这让我想起了些什么。 - Triynko

0
一个解决方法是在你的主类构造函数中设置断点。FlashDevelop将会命中那个断点,神奇的是所有其他的断点都会开始工作。

我试过了。在主类中设置的断点一开始是可以被触发的,但是几次点击后,即使是在主类中设置的断点也停止工作了 :( - Mentoliptus

0

有时候看起来有效的方法是:

在FlashPro CS5.5上构建和调试项目一次。

或者:

在断点不起作用的文件中引入编译器错误(例如随机按键),让FD构建并卡住。然后删除引入的错误,再让FD重新构建。

这可能会解决FlashDevelop调试器的问题。


1
谢谢,我会尝试一下。但是现在我只有FlashPro CS5,没有CS5.5。它也能用于CS5吗? - Mentoliptus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接