繁体   English   中英

在Win32 Release模式下在VC ++ 2010中查看准确的反汇编的最佳方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM