2010-09-13 39 views
1

這是一個C++項目:爲什麼在Visual Studio的反彙編視圖中,斷點不適用於那些沒有源代碼的行?

alt text

7C92E4BE mov   dword ptr [esp],eax 
7C92E4C1 mov   dword ptr [esp+4],0 
7C92E4C9 mov   dword ptr [esp+8],0 
7C92E4D1 mov   dword ptr [esp+10h],0 
7C92E4D9 push  esp 
7C92E4DA call  7C92E508 
7C92E4DF mov   eax,dword ptr [esp] 
7C92E4E2 mov   esp,ebp 
7C92E4E4 pop   ebp 
7C92E4E5 ret    
7C92E4E6 lea   esp,[esp] 
7C92E4ED lea   ecx,[ecx] 
7C92E4F0 mov   edx,esp 
7C92E4F2 sysenter   
7C92E4F4 ret 

我把BP在7C92E4F2(這部分是由Win32的從我的代碼調用,而不是明確的),然後我開始調試,它不會停止。

爲什麼?

+0

您設置得太晚了,它已經超出了該地址。 – 2010-09-13 13:00:57

+0

怎麼樣?我在運行程序之前設置它... – COMer 2010-09-13 13:12:51

回答

0

您應該能夠在SYSENTER上正確分配,但由於SYSENTER是發生用戶/內核模式轉換的地方,您將無法繼續進一步操作。你需要一個內核調試器來跳過超出這一點。正如我所說的那樣,儘管停留在指導本身不應該造成問題。

+0

事實是,我不能在'SYSENTER' – COMer 2010-09-13 13:22:44

相關問題