我正在编写汇编级优化代码,我需要确保C++编译器能够在发布模式下正确地使用它。
在VS2002中,我曾经能够让Release-Mode程序在断点处中断(并在我单步执行时显示原始的反汇编),但我不记得我是如何工作的。VS2010有没有任何选项可以让这种情况发生?
发布于 2011-02-21 04:28:11
使用/Zi编译并使用/DEBUG链接,您将能够设置断点。
在项目的属性对话框下:
发布于 2011-02-21 04:00:20
如果要使用调试器查看反汇编,可以将__debugbreak()内部调用放在要查看的代码之前。
发布于 2011-02-21 04:28:29
如果你直接编写汇编,你可以直接使用INT 3。当您使用调试器放置断点时,它实际上会将代码更改为该断点(二进制形式为0xCC),以便调试器在执行时将被调用。
你也可以像zr建议的那样调用一个为你做这件事的函数。Windows是DbgBreakPoint()。如果你拆开它,你可以很容易地看到它只不过是INT 3。
https://stackoverflow.com/questions/5059614
复制相似问题