调试器遍布各处

时间:2013-06-28 13:51:34

标签: asp.net vb.net

我已经从另一个项目(包含在bin文件夹中)添加了对DLL的引用,并且我已将将本地复制设置为true。当我单步执行代码时;调试器跳到了整个地方。我相信这是因为代码已经过优化。我有两个问题:

  1. 这是因为代码已经过优化
  2. 如果(1)为真,那么为什么我可以首先遍历代码,即没有Reflector。

2 个答案:

答案 0 :(得分:1)

我的猜测是跳跃是由于PDB(符号)与编译的DLL不同步,因此符号告诉VS去一个实际上与代码实际上没有匹配的行号;由于内在函数,优化也可能也起作用。

影响调试体验的其他因素包括:

  1. 仅我的代码设置
  2. 明确标有DebuggerNonUserCode属性
  3. 的方法

答案 1 :(得分:0)

调试优化代码可能会“跳转”,因为某些函数会内联。最有说服力的是,局部变量通常会被优化掉,在尝试读取它们时给出一个消息。

如果跳跃似乎没那么明显,那么你更有可能是错误的PDB(映射到行号)或源(具有行号)。