Index_P


P

P command (WinDBG), 374

/P switch (CL.EXE), 59

packing functions into binaries (working set tuning), 723–747

SWS utility, 62, 727–747

future of, 747

how to use, 728–733

implementing, 734–746

WST utility, 726

page faults, 309

minimizing, 61, 723–747

SWS utility, 727–747

future of, 747

how to use, 728–733

implementing, 734–746

PageHeap utility, 701–707

parameters

asserting, 89

macro, 410–411

viewing on stack (disassembled code), 342

WinDBG commands, 362

x86 assembly language, 322–326

PC command (WinDBG), 374

PDB (Program Database), 42, 200, 201, 494

CrashFinder utility, 502–511

generating MAP files from, 499–501

PDB2MAP utility, 499–501

/PDBSTRIPPED switch (LINK.EXE), 65

PE file format, 210

_penter function (SWS utility), 734–738

performance, 6

of BUGSLAYERUTIL.DLL, 678

critical sections, spinning, 587–588

data breakpoints, 277–280

default memory manager, 589–590

exception monitoring in native code, 296–298

exceptions, when to use, 475

logging depth and, 66

mixed-mode debugging, 247

multithreaded programming tips and tricks, 581–592

code reviews, 591

deadlock dumps in the field, 590

default memory manager, 589–590

discrete pieces, using, 583

minimizing amount of multithreading, 582

spinning critical sections, 587–588

testing on multiprocessor machines, 592

operating system heap checking, 697

relocated DLLs, 54

server application tracing, 718–722

smoke test benchmark, 69

timing code in Watch window, 283

tools, 27

working set tuning, 723–747

SWS utility, 727–747

WST utility, 726

per-thread breakpoints, 240

Peters, Rich, 502

Petzold, Charles, 766

Pietrek, Matt, 57, 210, 465, 603, 699, 767

Pike, Rob, 257, 763

pipes for remote native code debugging, 292–294

planning

automatic unit tests, 629, 634. See also unit tests

debugging/testing, 18

projects, 9–13

resources for developers, 761–769

training to avoid bugs, 13, 20

tracking changes, 33–40

bug tracking, 38–40

full memory tracking (BUGSLAYERUTIL), 678

tracking heap memory (DCRT library), 667–676

features of, 668–669

new operator, 671–674

release CRT library vs., 677–678

turning on, 670

useful functions, 675–676

tracking object lifetime, 524

version control, 33–38, 40

labeling, 37

when to make changes, 36–37

pointer verification (/RTCs switch), 708

pooled COM objects, uncommitted transactions with, 624

POP instruction (x86), 311

POPAD instruction (x86), 312

PostMessage function, 593

Poulin, Fran ois, 149

#pragma directives

comment, 63

init_seg, 693

pack, 60

warning, 49

precompiling headers, 675

preprocessing source files, 59

Presedo, Pablo, 502

.PRF files (SWS utility), 732–733

printf-style debugging (tracing), 142–148

ASP.NET applications, 146–148

DCRT library assertion support, 668

Event Tracing system, 66

EventLogTraceListener class, 97

FastTrace utility, 717–722

implementation, 721–722

merging trace logs, 720–721

flow tracing (Profiler API), 479, 484–488

native C++ applications, 148

.NET applications, 144–146

performance of, 718–719

TraceListener class, 96–103, 144

web services, 146–148

WinDBG debugger, 373–378

PrivateAssemblies directory, 436

proactive coding, 83–154

assertions, 85–142

ASP.NET applications and web services, 103–113

how to assert, 88–89

ignoring, 126–127

native C++ applications, 113–142

.NET applications, 95–103

what to assert, 86–87, 89–95

commenting, 149–150

assertions as documentation, 85

tracing, 142–148

ASP.NET applications and web services, 146–148

DCRT library assertion support, 668

Event Tracing system, 66

EventLogTraceListener class, 97

FastTrace utility, 717–722

flow tracing (Profiler API), 479, 484–488

native C++ applications, 148

.NET applications, 144–146

performance of, 718–719

TraceListener class, 96–103, 144

WinDBG debugger, 373–378

unit testing, 35, 84, 151–153, 627–665

implementing, 638–665

manual, 627–628

scripts for, 630–635

scheduling, 634

process critical section, 594

Process Explorer utility, 53, 574, 576–578

Process Status command (WinDBG), 367

processes under WinDBG, 366–371

attaching to and detaching from, 369–371

creating in Command window, 369

debugging child processes, 366–367

viewing in Command window, 367–369

ProcessFunctionComment function (XmlDocument), 419

process-related bugs, 8–17

ProcessSpy utility, 54

ProfilerLib, 465–467

profiling, 455–465

in-process debugging, 469–474

ProfilerLib, 465–467

Profiling API, 455–465

flow tracing, 479, 484–488

hooking functions in, 479–484

enter and leave notifications, 480

FunctionIDMapper function, 483–484

implementing functions, 480–482

inlining, 482–483, 484

in-process debugging, 469–474

ProgId attribute (Connect class), 427

Program Database (PDB), 200, 201, 494

CrashFinder utility, 502–511

generating MAP files from, 499–501

programming language, knowledge of, 20

projects

building debugging systems, 41–66

debug symbols, 42–46

lightweight diagnostics for release builds, 65–66

managed code warnings, 46–48

native code warnings, 48–51

builds

breaking, 67

debug builds, 67, 70

frequency of, 67–68

full debugging symbols in, 42–46

lightweight diagnostics for release builds, 65–66

organizing build settings, 444–452

reproducing, 38

symbol servers, building, 71–81

GUID strings, 412

knowledge of, 19

object models, 412–413

planning, 9–13, 18

tracking changes, 33–40

bug tracking, 38–40

full memory tracking (BUGSLAYERUTIL), 678

version control, 33–38, 40

labeling, 37

when to make changes, 36–37

prolog, function, 313

property evaluation, turning off, 230

Prosise, Jeff, 764, 766

protecting Win32 programs from debugger access, 160

pseudoregisters, 274, 283, 373

PublicAssemblies directory, 436

Purify utility, 669

PUSH instruction (x86), 311

PUSHAD instruction (x86), 312




Debugging Applications for Microsoft. NET and Microsoft Windows
Debugging Applications for MicrosoftВ® .NET and Microsoft WindowsВ® (Pro-Developer)
ISBN: 0735615365
EAN: 2147483647
Year: 2003
Pages: 177
Authors: John Robbins

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net