|
4NT utility, 768
naked calls
convention for, 480–482
x86 calls, 317, 319
names
decorated, 498
Name property (Thread class), 240
text aliasing (WinDBG), 379
threads, in native code, 276
Nasarre, Christophe, 54
Nathan, Adam, 764
native C++ applications. See also native code
assertions in, 113–142
types of assertions, 118–142
VERIFY macro, 116
tracing, 148
native code. See also managed code
advanced breakpoints, 269–280
conditional expressions, 274–275
data breakpoints, 277–280
system and exported functions, 271–274
calling methods in Watch windows, 230–233
character limit on debugging information, 291
compiler and linker switches for debugging, 59–65
debugging DLL at source level, 246–247
debugging injected code, 295
detaching from Windows 2000 processes, 299
dump files, 299–301
exception monitoring, 296–298
hit counts on location breakpoints, 224
Memory window, 295
walking the stack manually, 346–347
remote debugging, 291–294
symbol handling, 298. See also symbols
thread names, setting, 276
warnings in, 48–51
Watch windows, 280–291, 350
autoexpanding types, 283–291
formatting data and expression evaluation, 280–283
pseudoregisters, 283
timing code, 283
where DLLs load, 52–57
WinDBG debugger, 353–404
basic issues, 356–359
breakpoints, 379–382
command parameters, 362
commands, types of, 361
control commands, 385–386
dump files, handling, 393–396
evaluating variables, 372–373
exceptions and events, 382–384
executing, stepping, tracing, 373–378
extension commands, 386–393, 398–403
getting help, 361–362
processes and threads, 366–371
SOS extension support, 396–403
symbol handling, 357, 362–366
x86 assembly language, 269–302
calling conventions, 316–322
common constructs, 336–337
complete example, 339–341
debugging tips and tricks, 349–351
Disassembly window, using, 341–345, 346–347
instruction format and memory addressing, 307–309
instructions, list of, 310–316, 327–336
registers, 303–307, 350
variables and parameters, 322–326
navigating disassembled code, 342
NDoc utility, 416
NEG instruction (x86), 327
Nelson, Mark, 765
.NET Framework. See also Visual Studio .NET debugger
add-ins for Visual Studio .NET, 408, 424–436
fixing Add-In Wizard output, 426–429
in managed code, debugging, 423
managed property pages, creating, 433–436
SettingsMaster add-in, 444–452
SuperSaver add-in, 438–444
tool windows, creating, 430–432
toolbar button issues, 429–430
advanced breakpoints (Visual Studio .NET Debugger), 214–228
Breakpoints dialog box, 217–222
Breakpoints window, 215
child breakpoints, 222
conditional expressions, 226–227, 236–240, 274–275
location breakpoint modifiers, 224–227
multiple on single line, 227–228
native code, 269–280
per-thread breakpoints, 240
quickly breaking on functions, 217–224
setting in dynamically loaded DLLs, 301
tips on setting, 215–217
applications
assertions in, 95–103
tracing, 144–146
ASP.NET applications
assertions in, 103–113
tracing, 146–148
Visual Studio .NET Debugger with, 233
CLR debugging, 160, 257
debug symbols, turning on, 42
debuggers, 158
Demeanor for .NET utility, 251, 768
development resources, 761–769
exception handling, 475–477
inline assembler (Visual C++ .NET), 309–310
macros, 407, 409–415
code elements, 413–415
CommenTater macro, 415–423
executing from Command window, 410
macro parameters, 410–411
in managed code, debugging, 423
project object models, 412–413
Reflector utility, 266
tracing, 144–146
wizards, 408
!net_send extension command (WinDBG), 392
new operator, DCRT library tracking, 671–674
newarr instruction (ILDASM), 264
NEW_INLINE_WORKAROUND macro, 673–674
newobj instruction (ILDASM), 264
NGEN.EXE, 469
Nilsson, Jimmy, 765
/noconfig switch (C# compiler), 58
/NODEFAULTLIB switch (LINK.EXE), 63
noninvasive process attaching (WinDBG), 370–371
nonsampling, 456
NOP instruction (x86), 310
_NORMAL_BLOCK identifier, 679
NOT instruction (x86), 327
Notenboom, Leo, 434
notserv parameter, 569
NTOSKRNL.EXE debugger, 162
NTSD debugger, 354
null-terminated strings, handling, 713
|