2009-09-19 90 views
0

如果我有一个应用程序依赖于包含我的核心类的.dll。我注意到,当调试主应用程序,它进入.dll,调试程序通过(根据我的请求)空行!?为什么是这样?调试问题

有时,当我调试一个asp.net应用程序并得到一个ysod时,我没有得到带有错误或行号的文件名,但是我得到了ASP.NET/.NET Framework版本。为什么是这样?

顺便说一句,我做了一个关于ysod发生的前一个线程,但在最后一行执行的步骤(我把一个断点)执行后,YSOD发生 - 所以我无法通过逐步找到该行。这是/是因为错误的代码在项目引用中。

感谢

回答

4

有一个很好的机会,你所引用的DLL的版本是与源代码同步。

当DLL是解决方案的一部分并且您正在使用项目引用引用它时,会发生这种情况吗?

+0

这不会导致调试以获得线错误。与编译的程序集匹配的代码行位于调试文件中,而不是dll本身。 – David 2009-09-19 01:58:29

+0

或者如果我错了,请给我解释一下。 – David 2009-09-19 01:59:11

+0

我曾经有过这种情况。当我将断点设置为跳线(例如空白)时,这是第一个忘记更新我引用的DLL以匹配我正在查看的源代码的指示。 – 2009-09-19 02:19:32

2

就单步执行空白行而言,听起来像dll的调试符号文件(* .pdb)没有被更新。

这也可能导致您提到的第二个症状。

编辑 - 添加

请看看这篇文章,我的答案背后的推理:

http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must-know.aspx

+0

我有一个大项目,我将自己的删除脚本添加到构建过程中,以保持* .pdb更新。 – NitroxDM 2009-09-19 06:11:57

+0

我实际上在几周前阅读过。良好的链接,但。看我的编辑。 – dotnetdev 2009-09-19 16:13:53