[英]What's the best way to view accurate disassembly in VC++ 2010 while in Win32 Release mode?
我正在编写程序集级别的优化代码,并且需要确保C ++编译器可以在Release-Mode下正确使用它。
我曾经能够在VS 2002中使发布模式程序在断点处中断(并在逐步执行时显示原始反汇编),但是我不记得我是如何工作的。 VS 2010是否有任何可能允许这种情况发生的选项?
用于发布版本(/ Zi)的构建符号[编辑:并与/ DEBUG链接],您将能够设置断点。
如果要使用调试器查看反汇编,则可以在要查看的代码之前放置一个__debugbreak()内部调用。
如果要编写直线汇编,则只需使用INT 3
。 使用调试器放置断点时,它实际上会将代码更改为该断点(二进制为0xCC),因此调试器在执行时将被调用。
您也可以像zr建议的那样调用为您执行此操作的功能之一。 Windows是DbgBreakPoint() 。 如果拆开它,您很容易就能看到它只有INT 3
。
这些曾经是导致断头的方法:
_asm
{
int 3
}
要么
_asm
{
_emit 0xcc
}
还是
_emit 0xcc
我不确定语法(已经有一段时间了),但希望可以使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.