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