dont know why but ive seen it happening randomly (mostly the driver resource embedded inside it doesnt get registered with createservice kind of problems)
you can try debugmon from osronline.com it seemd to perform well the few times i had need for viewing debug prints
It's a great tool, but it does have a few other problems.
If the RE world had a "Medal of Honor", IMHO Mark Russinovich should receive it :-)
#1 It can be flooded pretty easy; Then it crashes.
IMHO perhaps if Mark added some sort of ring buffer, and,
or, did something to reduce the overhead updating it's
window. Like separate scheduled update thread(s), etc.
#2 There are inherent problems (unrelated to DBGVIEW et al)
with "OutputDebugString()" to begin with.
For one thing, it works using an exception hanndler
(exception code 0x40010006) which can cause havoc in your
own exception handler if you havn't compensated for it.
I've seen (in particular with low level hooks) where
OutputDebugString() alone will cause a crash.
#3 Also a pain, lot of lazy/clumsy programmers (curse you!) where they see their driver/application is the center of the universe and decide to leave OutputDebugString() outputs in release builds requiring you to mess with DBGVIEW to filter the crap.
Maybe the ultimate solution is to forgo using OutputDebugString() all together and use some other type of global IPC system like a simple one way named pipe. It could work from both kernel and user lands, and one could do all sorts of things like multiple channels, colors/codes, etc.
Put a client component in a .lib, and, or, .DLL and just include it with your projects.
Probably something like this already exists.
I'll make one my self one day if I can get past not wanting to make the fancy UI for it. Anyone have a nice Sysinternals'ish UI framework they want to share?
Note: Registration is required to post to the forums.