1

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

  1. 是不是因为代码优化了
  2. 如果 (1) 为真,那么为什么我可以首先单步执行代码,即没有反射器。
4

2 回答 2

1

我的猜测是跳跃是由于 PDB(符号)与编译的 DLL 不同步,因此符号告诉 VS 转到与代码实际执行的实际不匹配的行号;由于内联函数,优化也可能发挥作用。

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

  1. 只是我的代码设置
  2. DebuggerNonUserCode用属性显式标记的方法
于 2013-06-28T14:02:20.320 回答
0

调试优化代码可能会“跳来跳去”,因为某些函数会内联。最能说明问题的是,局部变量通常会被优化掉,在尝试读取它们时会发出这样的信息。

但是,如果跳跃似乎没有什么意义,那么您更有可能使用错误的 PDB(映射到行号)或源(具有行号)。

于 2013-06-28T13:59:49.607 回答