Re: windbg 设置条件断点没有中断掉
WinDbg
windbg 设置条件断点没有中断掉
Elven
2012-09-25, 11:03 上午
请教个问题:
先说一下我调试的环境:在一台电脑上装虚拟机进行的调试:(32 bits win7+windbg)+VMware(32bits win7)
我现在想在鼠标左键点击后让VMware(32bits win7)中断,我目前的指令为:bu User32!PostMessageA ".if(poi(@edx+0x05) = 0x0201) {.printf \"[1111]\";} .else {.printf \"[2222]\";gc}"
现在的状况是:当kd->g后,在VMware(32bits win7)上点击鼠标后没有停下来,请问一下各位帮我看一下哪出问题了??谢谢
而且当我用bu换成bp时,会提示Bp expression 'User32!PostMessageA' could not be resolved, adding deferred bp,这个不知道是什么情况?
我下断点的目的是想查看当我在点击了系统控制台的某一个按钮后我想查看系统接下来调用了哪一个内部API来实现其设置,进而我也就可以通过调用windows的未公开的内部API(这个设置我查过msdn,windows没有对外公开我需要用到的选项设置的API)来改变其中一个选项的设置,不知道这种方法是否可行?或者说可行性有多高?
谢谢!
Re: windbg 设置条件断点没有中断掉
格蠹老雷
2012-09-25, 21:43 下午
user32是用户态模块,在内核调试会话中设置用户态断点需要些技巧的(论坛中以前讨论过的),根据提示,你的断点没有设置成功。对于你的目标,可以考虑使用用户态调试,附加到要分析的进程。或者将断点设置到内核态模块(比如win32k)中。
Re: windbg 设置条件断点没有中断掉
Elven
2012-09-26, 14:39 下午
首先感谢您的回复!
按照你的意思我先到file->attach to a process再选择explorer.exe
但是结果是下面:
0:042> bu Win32k!SendMessage ".if(poi(@edx+0x05) = 0x0201) {.printf \"[1111]\";} .else {.printf \"[2222]\";gc}"
0:042> g
In DLLCanUnloadNow
好事没有达到点击鼠标左键后停下来的效果啊?
还有一个问题就是前面提到的bu换成bp就不行,这个是什么原因呢?师symbols加载不全还是其它原因?
Re: windbg 设置条件断点没有中断掉
悬崖遛马
2012-10-14, 21:43 下午
bp 不行应该是win32k模块还没有被加载
bu是延迟设置断点 可以
不知道对不对