If you want updates on new blog posts and other such trivia, follow Analyze -v on Twitter! http://twitter.com/analyzev
Archive for the ‘Non-technical’ Category
Now on Twitter
Monday, August 23rd, 2010Dog days of Summer
Friday, July 23rd, 2010Over two months since my last update! Guess I’ve been enjoying the Summer a bit too much…I plan on picking back up again in a couple of weeks when I’m back from vacation, until then look out for our upcoming issue of The NT Insider where I’ll be covering the details of DbgEng and writing your own debugger extensions.
A new appreciation for learning how to use WinDBG
Monday, February 1st, 2010I’ve been working on something lately that requires me to debug a Cygwin built application. After spending the last 8 or so years using WinDBG as a debugger, I’ve taken for granted just how “obvious” the commands to do various things are. After struggling to even figure out how to get debug information compiled into the binary (which came after figuring out that a separate file with debug information wasn’t created for all builds!), I struggled to perform common tasks such as single stepping and displaying local variables. I often take for granted that the way to do these things in WinDBG is obvious since I’ve long forgotten what it was like to not know every command.
Definitely a good learning experience, sometimes it’s important to step back and remember what it was like to be a noob.
Happy New Year!
Friday, January 1st, 2010Happy 2010 everyone! Hope it’s a healthy and prosperous year for us all.
Driver and Kernel Development MVP
Wednesday, July 1st, 2009After eight years in the community, this is my first year being nominated and selected as a Microsoft MVP. Hope this year is as good as the last eight and thanks to those who nominated me!
My favorite bit in the system
Tuesday, June 30th, 2009I don’t announce this in mixed company, but I do have a favorite bit in the system. My favorite bit by far is the DO_POWER_PAGABLE (dū pou‘ər păg‘a·ble) bit, which indicates whether or not your driver is pageable in the power path. It has nothing to do if whether or not your driver happens to be pagable.
Not only is DO_POWER_PAGABLE fun to say, it’s also fun to watch it grow as a spelling virus throughout the sample code, documentation, and news groups. For example, from the version of the CHM docs I have on my system at the moment:
Windows supports hot patching…
Sunday, June 28th, 2009So why do I have to reboot when I get an IE update?
Need better screen capture software
Wednesday, June 24th, 2009Just saw the blog from the first time with IE 7 and the screen grabs look pretty bad. I thought it would be easier than annotating listings from WinDBG, but maybe that decision needs to be revisited.
Click and punishment
Thursday, June 11th, 2009In my day to day usage of Windows, I find myself constantly being punished either for mistyping or for accidentially clicking on things. My favorite example is the accidental click on the A: drive in Explorer. On my system, this leads to instant punishment: a lock up of all things Explorer, which basically renders the entire system useless as the floppy drive grinds away looking for a disk.
Recently I also had the worst punishment of them all. I was merrily typing away an e-mail and hit the space bar at the exact moment that the, “your computer was updated, would you like to restart now?” dialog popped up. Sudddenly everything was closing around me and I had to suffer the ultimate indignity of waiting through a full system reboot.
Why this post about punishment, you ask? Because WinDBG will punish you at some point or another. A couple of weeks ago a student mentioned a cool variation of the k command. As I stood in front of the class I decided to try it on the system hooked up to the projector, so as requested I dutifully typed km into the debugger:
WinDBG sat there for a looong time, seemingly doing nothing and ignoring my futile attempts to stop it (which left me with lots of dead air to fill, good thing I have a collection of anecdotes to go to at this point and didn’t have to resort to tap dancing). Finally WinDBG came back to life and let me know what happened:
WinDBG had gone off over the network and tried to load symbols for every module looking for something with a symbol named “m” in it. Turns out the command that I wanted was kM, which displays the call stack with hyperlinked frame numbers:
There are various things I could have done to mitigate the problem in this case (turn off unqualified symbols loads, remove the Microsoft symbol server from my symbol path, etc), but there’s always going to be some frustration like this that you’ll come across. And, of course, it will inevitably happen at the most inopportune time, when you just want the tools to work so that you can debug your own problem.
That’s some ugly formatting
Wednesday, May 20th, 2009Clearly I need to come up with a better system of posting very wide debugger output (and hopefully by the time we have 128bit pointers we’re all on very high resolution monitors).




