|
WaitForDebugEvent function, 172
WaitForSingleObject function, 585, 594–595
Walk Stack button (SUPERASSERT), 124
walking the stack
manually (disassembled code), 346–347
Stack Walking section (SUPERASSERT), 125
WDBG, symbols and, 200–208
Warn( ) (TraceContext.Trace), 146
Warning glyph (Breakpoints window), 216
warnings
managed code, 46–48
native code, 48–51
Watch windows (Visual Studio .NET debugger), 228–233
calling methods in, 230–232
expanding types automatically, 241–243, 283–291
native code, 280–291, 350
autoexpanding types, 283–291
formatting data and expression evaluation, 280–283
pseudoregisters, 283
timing code, 283
Set Next Statement command, 232–233
WDBG debugger, 190–210
breakpoints and single stepping, 195–200
debug symbols, 357, 362–366
future of, 211–212
reading and writing memory, 192–195
stepping functionality, 209–210
symbols and stack walking, 200–208
WDBG.EXE subsystem (WDBG), 192
web services, XML
assertions in, 103–113
physical access to binaries, 250
timeout exceptions, 249
tracing, 146–148
white space, trimming off files, 438–444
Whole Program Optimizations setting, 62
wild writes (memory), 700–701
Win32 Debugging API, 159
WinDBG (Microsoft Windows Debugger), 162, 353–404, 556
basic issues, 356–359
setting up, 357–359
unusual behaviors, 359
breakpoints, 379–382
memory access breakpoints, 381–382
command parameters, 362
command-line arguments, changing, 360
commands, types of, 361
control commands, 385–386
dump files, handling, 393–396
creating, 393–394
debugging, 396
opening, 395–396
evaluating variables, 372–373
exceptions and events, 382–384
executing, stepping, tracing, 373–378
extension commands, 386–393
loading and controlling, 387–388
with SOS (Son of Strike), 398–403
getting help, 361–362
processes and threads, 366–371
attaching to and detaching from processes, 369–371
creating processes in Command window, 369
debugging child processes, 366–367
viewing in Command window, 367–369
SOS extension support, 396–403
symbol handling, 357, 362–366
window placement, 359
Windows 2000 processes, detaching from, 299
Windows debuggers, 159–164
kernel-mode, 161–164
KD (kernel debugger), 162
SoftICE, 163–164
WinDBG (Windows Debugger). See WinDBG
MinDBG debugger, 171–190
user-mode debuggers, 159–160
WDBG debugger, 190–210
breakpoints and single stepping, 195–200
debug symbols, 357, 362–366
future of, 211–212
reading and writing memory, 192–195
stepping functionality, 209–210
symbols and stack walking, 200–208
writing your own, 210–211
Windows development resources, 761–769
Windows Forms assertions, 95–103
tracing, 144–146
Windows Me, implementing DeadlockDetection, 603–604
Windows operating system heap checking, 697–699
Windows services
basic characteristics, 566–568
API functions, 566–567
security, 568
debugging, 568–575
Allow Service To Interact With Desktop, 570
attaching to processes, 571–575
core code, 569
service identity, setting, 571
startup code, 575
wizards, 408
Woodring, Mike, 764
working set tuning, 723–747
SWS utility, 727–747
future of, 747
how to use, 728–733
implementing, 734–746
WST utility, 726
/Wp64 switch (CL.EXE), 60
Write( ) (Trace), 144, 146
WriteIf( ) (Trace), 144
WriteLine( ) (Trace), 144
WriteLineIf( ) (Trace), 144
WriteProcessMemory function, 176
writing debuggers, 210–211
writing to debugger memory (WDBG), 192–195
WST (Working Set Tuner) utility, 726
wt command (CORDBG.EXE), 244, 479
WT command (WinDBG), 374–378
|