Почему точка останова не работает для этих строк без исходного кода в представлении «Разборка» Visual Studio? - PullRequest
1 голос
/ 13 сентября 2010

Это проект на C ++:

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, а не явно из моего кода), затем начинаю отладку, она не останавливается.

Почему?

1 Ответ

0 голосов
/ 13 сентября 2010

Вы можете прервать работу прямо на SYSENTER, но вы не сможете продолжать дальше, так как SYSENTER - это место, где происходит переход режима пользователь / ядро. Вам понадобится отладчик ядра для шага за этой точки. Как я уже сказал, остановка прямо на самой инструкции не должна создавать проблем.

...