Delphi XE5未显示引发异常的行

Delphi XE5未显示引发异常的行,delphi,delphi-xe5,Delphi,Delphi Xe5,在测试我的delphi应用程序时,出现了一些异常,但调试器没有显示以前的位置。是否存在导致此情况的设置 编辑:发生异常时,会出现一条消息,提醒我发生了错误以及异常类型。通常,我可以单击“中断”,它会显示错误发生在哪一行,但当我单击“中断”时,这不会发生。您可以从选项中控制调试器对异常的反应 转到工具\选项。 单击调试器选项,然后单击语言异常。 您可能已取消选中通知语言异常 否则,您可以尽可能多地启用 确保在项目中启用所有调试信息: 调试信息 符号参考信息 然后在不进行优化的情况下进行尝试。您可以

在测试我的delphi应用程序时,出现了一些异常,但调试器没有显示以前的位置。是否存在导致此情况的设置


编辑:发生异常时,会出现一条消息,提醒我发生了错误以及异常类型。通常,我可以单击“中断”,它会显示错误发生在哪一行,但当我单击“中断”时,这不会发生。

您可以从选项中控制调试器对异常的反应

转到工具\选项。 单击调试器选项,然后单击语言异常。 您可能已取消选中通知语言异常

否则,您可以尽可能多地启用

确保在项目中启用所有调试信息:

调试信息 符号参考信息
然后在不进行优化的情况下进行尝试。

您可以从选项中控制调试器对异常的反应

转到工具\选项。 单击调试器选项,然后单击语言异常。 您可能已取消选中通知语言异常

否则,您可以尽可能多地启用

确保在项目中启用所有调试信息:

调试信息 符号参考信息
在不进行优化的情况下进行尝试。

如果您发布一个屏幕截图,显示您在单击“中断”前后实际看到的内容,可能会有所帮助

你还没有真正回答你问题的第一条评论:发生了什么错误?关键是,如果特定的异常没有显示代码,那么它们可能发生在外部DLL中

作为第一步,检查Delphi是否会在最简单的情况下显示异常:

在表单上放置一个按钮。 用以下代码编写OnClick处理程序:引发异常; 注意:请确保您在现有应用程序和全新的单机应用程序中都尝试了此功能。 如果Delphi没有在simple应用程序中向您显示该异常,我会非常惊讶,需要进行一些更认真的挖掘

如果它显示在简单应用程序中,但不显示在您的应用程序中,则您的项目中存在一些特定问题:

确保没有在项目中的某个位置禁用调试信息{$D-}或{$DEBUGINFO OFF}。 您的项目中可能存在异常挂接代码,这可能会造成干扰。尝试禁用异常记录器和类似工具以缩小问题范围。问题解决后,不要忘记重新启用适当的工具。 验证您的搜索和浏览路径是否正确配置为查找源代码,以便向您显示错误。 如果两个应用程序中都显示了这个简单的异常,那么我们可能需要确切地知道哪些异常没有显示,以进一步提供帮助。但是,这里还有一些提示:

转到工具|选项。在“调试器选项”下,查找本机操作系统异常。确认您没有更改任何这些设置。 当异常发生时,打开线程查看器,检查是否在主线程或其他线程上引发了异常。 同时打开您的调用堆栈查看器,并验证您确实拥有调用堆栈。 然后检查Delphi是否会显示任何调用堆栈行的代码。 注意,根据引发异常的位置,Delphi仍然可能无法找到源单元。但是,Delphi应该会提示您并询问在这种情况下可以从何处加载文件。它在旧版本的Delphi中确实有效。 但我不排除这种可能性,因为一个有缺陷的插件很可能会抑制提示


如果您发布一个屏幕截图,显示单击“打断”前后实际看到的内容,可能会有所帮助

你还没有真正回答你问题的第一条评论:发生了什么错误?关键是,如果特定的异常没有显示代码,那么它们可能发生在外部DLL中

作为第一步,检查Delphi是否会在最简单的情况下显示异常:

在表单上放置一个按钮。 用以下代码编写OnClick处理程序:引发异常; 注意:请确保您在现有应用程序和全新的单机应用程序中都尝试了此功能。 如果Delphi没有在simple应用程序中向您显示该异常,我会非常惊讶,需要进行一些更认真的挖掘

如果它显示在简单应用程序中,但不显示在您的应用程序中,则您的项目中存在一些特定问题:

确保没有在项目中的某个位置禁用调试信息{$D-}或{$DEBUGINFO OFF}。 您的项目中可能存在异常挂接代码,这可能会造成干扰。尝试禁用异常记录器和类似工具以缩小问题范围。问题解决后,不要忘记重新启用适当的工具。 验证您的搜索和浏览路径是否正确配置为查找源代码,以便向您显示错误 或 如果两个应用程序中都显示了这个简单的异常,那么我们可能需要确切地知道哪些异常没有显示,以进一步提供帮助。但是,这里还有一些提示:

转到工具|选项。在“调试器选项”下,查找本机操作系统异常。确认您没有更改任何这些设置。 当异常发生时,打开线程查看器,检查是否在主线程或其他线程上引发了异常。 同时打开您的调用堆栈查看器,并验证您确实拥有调用堆栈。 然后检查Delphi是否会显示任何调用堆栈行的代码。 注意,根据引发异常的位置,Delphi仍然可能无法找到源单元。但是,Delphi应该会提示您并询问在这种情况下可以从何处加载文件。它在旧版本的Delphi中确实有效。 但我不排除这种可能性,因为一个有缺陷的插件很可能会抑制提示



发生了什么错误?你怎么知道有错误?它们看起来像什么?他们有留言吗?你的程序停止运行了吗?我们看不到你的屏幕。请更详细地描述这个问题。@J。。。更新了更多细节你可能是说,如何突破异常?@Toonkrij是的,正是我的意思!你知道哪个异常被忽略了吗?发生了什么错误?你怎么知道有错误?它们看起来像什么?他们有留言吗?你的程序停止运行了吗?我们看不到你的屏幕。请更详细地描述这个问题。@J。。。更新了更多细节你可能是说,如何突破异常?@Toonkrij是的,正是我的意思!你知道哪个异常被忽略了吗?另一种可能是他不小心将基类异常或其他类添加到了被忽略的异常列表中。@Güntherthebeauty我该如何修复它?@Güntherthebeauty被忽略的异常是:VCL EAPort异常、Indy静默异常、Microsoft DAO异常,System.Threading.SynchronizationLockException,System.Threading。ThreadAbortException@Seryth就我所知,这是应该的。所以你没有忽略所有的例外。您试图捕获哪种类型的异常?无法定位EConvertError和Row以进行更新另一种可能是他意外地将基类异常或其他类添加到被忽略的异常列表中。@Günthert如何解决这个问题?@Günthert被忽略的异常是:VCL EAbort异常、Indy静默异常、Microsoft DAO异常、System.Threading.SynchronizationLockException、System.Threading。ThreadAbortException@Seryth就我所知,这是应该的。所以你没有忽略所有的例外。您试图捕获什么类型的异常?找不到EConvertError和Row进行更新