簡體   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