为什么断点对于 Visual Studio 的反汇编视图中没有源代码的行不起作用?

发布于 2024-09-19 03:21:52 字数 717 浏览 0 评论 0 原文

这是一个c ++项目:

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 

我在7C92E4F2上设置bp(这部分由Win32调用,不是从我的代码中明确指出的),然后我开始调试,它不会停止。

为什么 ?

It's a c++ project:

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 

I set bp on 7C92E4F2 (this part is called by Win32,not explicitly from my code) , then I start debugging, it doesn't stop.

Why ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

空宴 2024-09-26 03:21:52

您应该能够在 SYSENTER 上直接中断,但您将无法继续继续,因为 SYSENTER 是用户/内核模式转换发生的地方。您需要一个内核调试器来超越该点。正如我所说,不过,直接停在指令本身应该不会造成问题。

You should be able to break right on SYSENTER, but you won't be able to continue any further, since SYSENTER is where the user/kernel-mode transition takes place. You'd need a kernel debugger to step beyond that point. As I said, stopping right at the instruction itself shouldn't pose a problem, though.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文