I am having the following problem/bug (and no, i seriously don’t think
it’s a symbols problem :)…
- I set windbg to break on boot.
- I set an un-resolved breakpoint (bu) on a display driver function
- system boots, loads the display driver (but my function is never
called, so no breakpoint is hit. this is expected) - the system unloads the display driver, then reloads it
At this point the following I start getting errors about trying to set a
breakpoint twice. I am loading the driver over the serial connection
(via kdfiles) as the machine boots, so this may have something to do
with the error. If I clear all the breakpoints, and don’t set any more,
then the system resumes normally (which doesn’t help me cause I need to
step through a bad function :)…
My system config is:
Target Machine: WinXP
Host Machine: WinXP running WinDBG 6.0.0017.0
Connection type: Serial
Here’s a (long) paste of what’s going on:
-------- SNIP ---------
KD: Accessing
‘D:\funk\proxy4\Host\kernel\build\chk_w2k\i386\phmdisp.dll’
(\SystemRoot\System32\phmdisp.dll)
File size 128K…
MmLoadSystemImage: Pulled \SystemRoot\System32\phmdisp.dll from kd
MiSessionWideReserveImageAddress: NO Code Sharing on
\SystemRoot\System32\phmdisp.dll, Address 0xbf9ba000
PHMIRROR: DrvEnableDriver iEngineVersion=30100 cj=12 pded=f98c29c4
PHMIRROR: DrvEnableDriver exiting.
PHMIRROR: DrvGetModes hDriver=82050c10
PHMIRROR: DrvGetModes returns 0000
PHMIRROR: DrvDisableDriver called.
KD: Accessing
‘D:\funk\proxy4\Host\kernel\build\chk_w2k\i386\phmdisp.dll’
(\SystemRoot\System32\phmdisp.dll)
File size 128K…
MmLoadSystemImage: Pulled \SystemRoot\System32\phmdisp.dll from kd
MiSessionWideReserveImageAddress: NO Code Sharing on
\SystemRoot\System32\phmdisp.dll, Address 0xbf9ba000
KD: Attempt to set breakpoint bf9d1af4 twice!
Unable to insert breakpoint 0 at bf9d1af4, NTSTATUS 0xC0000001
“{Operation Failed} The requested operation was unsuccessful.”
bp0 at bf9d1af4 failed
WaitForEvent failed
nt!DebugService2+f:
80ab2373 5d pop ebp
*** ERROR: Module load completed but symbols could not be loaded for
ntdll.dll
kd> bl
0 e bf9d1af4 0001 (0001) phmdisp!ProxyWriteKernError
kd> bc 0
kd> bu phmdisp!ProxyWriteKernError
WARNING: Software breakpoints on session addresses can cause bugchecks.
Use hardware execution breakpoints (ba e) if possible.
kd> g
KD: Attempt to set breakpoint bf9d1af4 twice!
Unable to insert breakpoint 0 at bf9d1af4, NTSTATUS 0xC0000001
“{Operation Failed} The requested operation was unsuccessful.”
bp0 at bf9d1af4 failed
WaitForEvent failed
nt!DebugService2+f:
80ab2373 5d pop ebp
kd> bl
0 e bf9d1af4 0001 (0001) phmdisp!ProxyWriteKernError
kd> bc 0
kd> bp phmdisp!ProxyWriteKernError
WARNING: Software breakpoints on session addresses can cause bugchecks.
Use hardware execution breakpoints (ba e) if possible.
kd> g
KD: Attempt to set breakpoint bf9d1af4 twice!
Unable to insert breakpoint 0 at bf9d1af4, NTSTATUS 0xC0000001
“{Operation Failed} The requested operation was unsuccessful.”
bp0 at bf9d1af4 failed
WaitForEvent failed
nt!DebugService2+f:
80ab2373 5d pop ebp
kd> bc *
kd> bl
kd> g
PHMIRROR: DrvEnableDriver iEngineVersion=30100 cj=12 pded=f98c2a58
PHMIRROR: DrvEnableDriver exiting.
PHMIRROR: DrvEnablePDEV hdev=e1881008 hDriver=82050c10
-------- SNIP --------
(and boot proceeds from here)
Seems like the logic for how ‘bu’ handles the persistant breakpoint
across loads/unloads of drivers is going awry in this case…
Thanks,
sean