gpt4 book ai didi

C# VS2012 stacktrace 行是错误的

转载 作者:太空狗 更新时间:2023-10-29 23:15:21 27 4
gpt4 key购买 nike

在我的 dll 中,在很长一段时间内一切正常,直到今天,我不知道出了什么问题。从今天开始出现错误的异常行数。

所以在我的 dll 库中的方法中,我插入了一行以抛出不受支持的异常,但是我使用调试器或者只是在日志行中看到异常行是错误的!

这是部分代码的图片: Stack problem

事实上,异常发生在 391 行,到今天已经过了很长时间。现在在日志中我看到 776 行和调试器中的相同。有人有什么想法吗?

更新 1 2013 年 5 月 11 日

看完所有答案后(感谢大家的回答=))这里有一些更新:

pdb 文件是最新的吗? 我想是的,因为我从输出文件夹中删除了所有内容,重建解决方案并看到了同样的问题。我还检查了它的创建日期。

我是否处于 Release模式? 我认为不是。这是带有构建配置的图像
Build configuration

代码优化了吗? 我创建了另一个测试并删除了 NotSupportedException 下面的所有内容,但问题仍然在方法的末尾,行是 397 而不是 391,就像我们实际上有的那样 Debug test 2

什么是内部异常? Null inner ecxeption

最佳答案

我几乎可以肯定您正在以 Release模式运行您的程序。

当您在 Release模式下编译时,C# 编译器将通过程序集的 DebuggableAttribute 启用优化。

JIT 编译器很聪明,它发现第 394 行和第 776 行之间的所有代码都是死代码,无法访问,因为您抛出了 NotSupportedException

此外,当我们处于 Release模式时,pdb 的信息有限并且启用了 JIT 优化,因此编译器无法始终将异常堆栈映射到异常发生的确切位置。不过,通常不远,就能看到它被扔到哪里了。

关于C# VS2012 stacktrace 行是错误的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19772593/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com