如何让程序断在CreatePopupMenu里

s446721902 2011-12-21 06:53:38
在调试程序的时候,最近有一个想法,如果我能够让程序断在CreatePopupMenu里面,或者其他类似的系统api里,那么我就能快速定位相关模块
...全文
99 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lactoferrin 2011-12-21
  • 打赏
  • 举报
回复
调试器里面往CreatePopupMenu处放一个int 3
s446721902 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 keiy 的回复:]

可用f11单步跟踪到子程序中(call内部)
[/Quote]

void CMyDrawView::OnRButtonDown(UINT nFlags, CPoint point)
{
HMENU pMenu = ::CreatePopupMenu();
}



HMENU pMenu = ::CreatePopupMenu();
00401ABD mov esi,esp
00401ABF call dword ptr [__imp__CreatePopupMenu@0 (00419bac)]

在00401ABF处F11进入

77D1F601 push 1
77D1F603 call 77D184C2
77D1F608 ret

这样子的话我如果吧我在77D1F601处下断,断点进来后堆栈不对啊

USER32! 77d1f601()
CWnd::OnWndMsg(unsigned int 516, unsigned int 2, long 8061308, long * 0x0012fcc4) line 1964
CWnd::WindowProc(CWnd * 0x00421160

堆栈中连CMyDrawView::OnRButtonDown这个都没额
peng_weida 2011-12-21
  • 打赏
  • 举报
回复
能断在系统函数中吗
柯本 2011-12-21
  • 打赏
  • 举报
回复
可用f11单步跟踪到子程序中(call内部)
s446721902 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 keiy 的回复:]

VC的话,只能进汇编单步调试了
[/Quote]
汇编能看到一个call,call这个还能在往下走吗,回家试下~
柯本 2011-12-21
  • 打赏
  • 举报
回复
VC的话,只能进汇编单步调试了
s446721902 2011-12-21
  • 打赏
  • 举报
回复
[Quote=引用楼主 s446721902 的回复:]
在调试程序的时候,最近有一个想法,如果我能够让程序断在CreatePopupMenu里面,或者其他类似的系统api里,那么我就能快速定位相关模块
[/Quote]
系统函数,加不了啊
xiaoxiaosasameng 2011-12-21
  • 打赏
  • 举报
回复
在那里添加一个MessageBox函数就是嘛

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧