应用程序在配置Debug中引发异常,但在Release中起作用

问题描述 投票:0回答:1

我不再工作的同事后,我正在尝试维修应用程序。此应用程序通过串口与设备连接,并以Windows形式显示接收到的数据。

事实证明,当我使用Release配置时,应用程序工作几乎完美,而在Debug中时抛出异常。

我使用其他程序检查发送和接收的帧。因为在调试中异常与读取该帧有关。它通常会抛出异常,因为框架会缩短或读取某些内容。我读到了一点都不应该理解的内容,此外,第二个程序显示,尽管一切正常,但实际上所有帧都是正确的。

我不知道发布和Dubug的可能性,我不知道在我的项目中哪里可以找到有关创建应用程序差异的信息。除了Configuration Manager之外,两者都相同。

有人可以告诉我为什么它在Release中起作用而在Debug中不起作用吗?

App是在net 2.0上编写的,现在我在4.7.2上进行了更改,但发行版和dubug都没有改变。

c# serial-port xdebug release
1个回答
0
投票

您是否已经尝试过重建应用程序或尝试删除调试文件并重新启动程序。

这也是我发现的很好的解释

[在调试模式下进行编译时,默认情况下,您会同时获得“ .pdb”文件和.exe或.dll。 pdb文件称为“符号”。这就是允许异常为您提供堆栈跟踪的原因,该堆栈跟踪可以准确告诉您哪个类和方法失败,甚至指向.cs文件中的行号。它还允许将调试器附加到正在运行的程序,并允许您“逐步执行”代码。

在发布模式下进行编译时,编译器会“优化”已编译的代码(以使执行效率更高)。为此,它将使您的代码与实际编写的代码有所不同。这样,如果引发异常,则类,方法和行号将不那么准确。在某些情况下,除非在二进制级别上,否则将无法跟踪该异常,因为某些内容已编译成任何.cs文件中都不包含的类或方法。

© www.soinside.com 2019 - 2024. All rights reserved.