调试器(或CLR异常处理程序)是否可以使用pdb显示发布模式中发生异常的行?
在发布模式下,代码已经过优化,并不总是遵循"原始"代码的顺序和逻辑.
令人惊讶的是,调试器可以逐步浏览我的代码,即使在发布模式下也是如此.优化应该使导航非常不舒服.
你能否为我澄清这两点?
Dan*_*ing 11
我不熟悉CLR是如何完成的,但它可能与使用本机代码完成的方式非常相似.当编译器生成机器指令时,它会向pdb添加条目,基本上说"当前地址的指令X来自foo.cpp中的第25行".
调试器知道当前正在执行的程序地址.所以它在pdb中查找一些地址X,并看到它来自foo.cpp中的第25行.使用它,它可以"逐步"完成您的源代码.
无论调试模式还是发布模式,此过程都是相同的(前提是在发布模式下完全生成pdb).但是,你是正确的,由于优化调试器通常在发布模式下不会"线性"地通过代码.它可能会意外跳到不同的行.这是由于优化器更改了指令的顺序,但它不会更改地址到源代码行的映射,因此调试器仍然可以遵循它.
| 归档时间: |
|
| 查看次数: |
5346 次 |
| 最近记录: |