Главная    Ex Libris    Книги    Журналы    Статьи    Серии    Каталог    Wanted    Загрузка    ХудЛит    Справка    Поиск по индексам    Поиск    Форум   

Поиск по указателям

Rosenberg J.B. — How debuggers work
Rosenberg J.B. — How debuggers work

Обсудите книгу на научном форуме

Нашли опечатку?
Выделите ее мышкой и нажмите Ctrl+Enter

Название: How debuggers work

Автор: Rosenberg J.B.


A total guide to debuggers: what they do, how they work, and how to use them to produce better programs "Debuggers are the magnifying glass, the microscope, the logic analyzer, the profiler, and the browser with which a program can be examined."-Jonathan B. Rosenberg
Debuggers are an indispensable tool in the development process. In fact, during the course of the average software project, more hours are spent debugging software than in compiling code. Yet, not many programmers really know how to constructively interpret the results they get back from debuggers. And even fewer know what makes these complex suites of algorithms and data structures tick. Now in this extremely accessible guide, Jonathan B. Rosenberg demystifies debuggers for programmers and shows them how to make better use of debuggers in their next projects.
Taking a hands-on, problem-solving approach to a complex subject, Rosenberg explains how debuggers work and why programmers use them. Most importantly, he provides practical discussions of debugger algorithms and procedures for their use, accompanied by many practical examples. The author also discusses a wide variety of systems applications, from Microsoft's Win32 debug API to a large parallel architecture.

Язык: en

Рубрика: Computer science/Языки программирования/

Статус предметного указателя: Готов указатель с номерами страниц

ed2k: ed2k stats

Год издания: 1996

Количество страниц: 256

Добавлена в каталог: 22.11.2005

Операции: Положить на полку | Скопировать ссылку для форума | Скопировать ID
Предметный указатель
/proc (UNIX)      63 65-67
16-bit debugging on 32-bit operating systems      72-77
16-bit debugging on 32-bit operating systems, under Windows      95 77
16-bit debugging on 32-bit operating systems, under Windows NT      73-77
3GL debuggers      14-15
4GL debuggers      14-15
Active breakpoints      27
Algorithms, breakpoint      107-8
Algorithms, step-related      129-32
Alpha processors      52
Animation      130
Application-level debuggers      17-19
Application-specific debuggers      19
Architecture of debuggers      21-37
Architecture of debuggers, kernel      31-33
Architecture of debuggers, main loop      34-36
Architecture of debuggers, operating system interface      33-34
Architecture of debuggers, overview of      21
Architecture of debuggers, threads and      180-82
Architecture of debuggers, user interface      22-31
Architecture of debuggers, user interface, breakpoints view      26-28
Architecture of debuggers, user interface, CPU or machine-level view      28-30
Architecture of debuggers, view, inspector and evaluator      30
Architecture of debuggers, view, source view      22 24-26
Architecture of debuggers, view, stack view      26
Architecture of debuggers, view, variables view      30
Assembly-level debugging      144-49
Assembly-level debugging, disassembly      145 47
Assembly-level debugging, memory dumps and      148 49
Assembly-level debugging, viewing registers      147 48
Attaching to running program      96 98
Automatic redisplay of expressions      155
Blocking OS debug call      35
BPT instruction      52-53
Branch delay slot      48-50
Breakpoint algorithms      107-8
Breakpoint(s)      5 39 107-19
Breakpoint(s), active      27
Breakpoint(s), breakpoint(s), hardware support for      40 42
Breakpoint(s), C++ templates and one-to-many problems and      118
Breakpoint(s), code patching by the debug breakpoint(s), ger and      118-19
Breakpoint(s), conditional      108-9
Breakpoint(s), data structures      108-9
Breakpoint(s), execution control and      101-2
Breakpoint(s), inactive      27
Breakpoint(s), internal      114-16
Breakpoint(s), logical      108
Breakpoint(s), physical      108
Breakpoint(s), PowerPC support for      51-52
Breakpoint(s), setting and activation of      110-11
Breakpoint(s), setting breakpoints      98-99
Breakpoint(s), side effects on      116-18
Breakpoint(s), temporary      113-14
Breakpoint(s), threads and      184
Breakpoint(s), unverified      27
Breakpoint(s), validation of      111-13
Breakpoints view      26-28
Browsing      7
C++ exceptions      132
C++ global constructors and destructors      128-29
Code hoisting      208
Code motion      208
Code patching by the debugger, breakpoints and      118-19
CodeGuard      192
Common subexpression elimination      210 218-19
Compiler-generated debugging information      157-60
Compiler-generated debugging information, catering to the debugger      158
Compiler-generated debugging information, different target machines      160
Compiler-generated debugging information, dividing the work      159-60
Compiler-generated debugging information, incremental processing      160
Conditional breakpoints      108-9
Constant folding      208-9
Constructors, C++ global      128-29
context      9-11
Context, assembly-level debugging      144-49
Context, discovering information about      135-49
Context, program stack      136-44
Context, source-level view      135
Context, tracing a corrupted stack      140-43
Context, unwinding nontraditional stacks      143-44
ContinueDebugEvent()      74
Controlling execution      see Execution control
Copy propagation      209
Corrupted stack, tracing a      140-43
Corruption, memory (heap)      191-93
CPU support for debuggers      see hardware support for debuggers
CPU view      11 28-30
CreateProcess() (Win      32 70
CreateThread()      176
Cross jumping      211
data corruption      178
Data inspection      151-72
Data inspection, automatic redisplay of expressions      155
Data inspection, compiler-generated debug data inspection, ging information      157-60
Data inspection, parallel architectures and      201
Data inspection, scope resolution      154
Data sharing, inadvertent      178
Dead store elimination      209
Dead variable elimination      209
Deadlock      179
DebugActiveProcess()      74
DebugBreak()      74
Debuggee creating      95-96
Debuggee execution of      see execution control
Debugger Callback class      82 86
Debuggers, basic principles of      7-11
Debuggers, basic principles of 4GL versus 3GL debuggers      14-15
Debuggers, basic principles of, application-specific versus in-circuit emulation debuggers, basic principles of, debuggers      19
Debuggers, basic principles of, classification of      11-19
Debuggers, basic principles of, context      9-11
Debuggers, basic principles of, debugging trails systems developments      11
Debuggers, basic principles of, Delphi debuggers      16
Debuggers, basic principles of, Heisenberg principle      7-8
Debuggers, basic principles of, OS kernel versus application-level debuggers      17-19
Debuggers, basic principles of, Smalltalk debuggers      15-16
Debuggers, basic principles of, source-level (symbolic) debuggers, basic principles of, versus machine-level      12
Debuggers, basic principles of, stand-alone debuggers versus integrated development environments      12-14
Debuggers, basic principles of, truthful debugging      8-9
Debuggers, basic principles of, Visual Basic debuggers      15
Debuggers, current state-of-the-art      5-7
Debuggers, overview of      1-5
Debuggers, overview of, how they are used      2-3
Debuggers, overview of, how they work      3-5
Debuggers, overview of, what they are      2
Debuggers, overview of, when to use them      3
Debuggers, overview of, who uses them      2
Debuggers, overview of, why they are used      3
Debugging tables (symbol tables)      157-60
DEBUG_EVENTs      180
Delphi debuggers      16
Destructors, C++ global      129
Disassembly      145 47
Disassembly pane      29
Disassembly views      6
Distributed object debugging      196-99
DosDebug() (OS/2)      67-70
Epilogue      140
Evaluation of expressions      151-53
Evaluation of expressions, automatic redisplay of expressions and      155
Evaluation of expressions, invoking functions during      155-57
Evaluator      30
Event logging by GUI debuggers      188-89
Event-driven stepping models      132-33
Exception events, execution control and      104-5
Execution control      33 95-106
Execution control, continuing execution      105-6
Execution control, debuggee-generated events during execution      101-5
Execution control, debuggee-generated events during execution, breakpoint, single-step events      101-2
Execution control, debuggee-generated events during execution, data access (watchpoint) events      103
Execution control, debuggee-generated events during execution, exception events      104-5
Execution control, debuggee-generated events during execution, module load/unload events      104
Execution control, debuggee-generated events during execution, process creation/deletion events      102-3
Execution control, debuggee-generated events during execution, thread creation/deletion events      102
Execution control, initiating program execution      95-101
Execution control, initiating program execution, attaching to running program      96 98
Execution control, initiating program execution, causing the debuggee to run      99 101
Execution control, initiating program execution, creating the debuggee      95-96
Execution control, initiating program execution, setting a breakpoint      98-99
Execution control, terminating execution      106
ExitThread()      177
Expression evaluation      33
Expressions, automatic redisplay of      155
expressions, evaluating      151-53
FatalExit()      74
Fault detection, hardware support for      43
Finish function      130-31
Flags plane      30
For-loops, single-line      126-27
FORTRAN      203
Frame pointer, MIPS processors and      48
GetThreadContext()      70 74 182
GetThreadSelectorEntry()      74
Graphical User Interface (GUI) applications      185-89
GUI debuggers, architecture of      186-88
GUI debuggers, desirable features of      188-89
GUI debuggers, Heisenberg Principle in      186
GUI debuggers, soft mode versus hard mode      187-88
GUI messages, tracking      117
Hard mode      187-88
Hardware support for debuggers      39-53
Hardware support for debuggers, architectures, Alpha      52-53
Hardware support for debuggers, architectures, Intel x86 and Pentium      45-47
Hardware support for debuggers, architectures, MIPS processor family      47-51
Hardware support for debuggers, architectures, PowerPC      51-52
Hardware support for debuggers, breakpoint support      40 42
Hardware support for debuggers, contemporary CPU debug hardware support for debuggers, architectures      45-53
Hardware support for debuggers, fault detection      43
Hardware support for debuggers, future architecture trends      53
Hardware support for debuggers, minimal basic requirements      39-40
Hardware support for debuggers, multiprocessors      44-45
Hardware support for debuggers, single-step      42 43
Hardware support for debuggers, watchpoint (data break point)      43
Heisenberg principle      7-8 186
Home tables      154
Hybrid OS debugging support      72-77
In-circuit emulation (ICE)      4 199
In-circuit emulation debuggers      19
In-line procedure expansion      210-11
Inactive breakpoints      27
Inadvertent data sharing      178
Incremental processing      160
Induction variable elimination      210 218
Inspector      30
Instruction decoding      124-25
Integrated development environ-ments      12-14
Intel x86 CPUs      45-47
Internal breakpoints      114-16
Interrupts      40
Ioctl() (UNIX)      65 66
Java, debugging support      77 79 81-94
Kernel debuggers      4 17-19 31-33
Logging at a breakpoint      116
Logging by GUI debuggers      188-89
Logical breakpoints      108
Loop unrolling      211
Mac OS debugger API      61 64-65
Machine-level debuggers      4 12
Machine-level view      28-30
Main loop      34-36
Memory (heap) corruption bugs      191-93
Memory dump pane      30
Memory dumps      148 49
Memory, and resource tracking, memory, integrated      192-93
Memory, automatic corruption detection      193
Messagepoints      188
MIMD (Multiple Instruction Multiple Data) architecture      44 45 201
MIPS processor family      47-51
Module load/unload events      104
MSR (Machine State Register)      51
Multiprocess applications      10
Multiprocessor architectures, breakpoint issues      203
Multiprocessor architectures, source stepping in      203-4
Multiprocessors, hardware support for      44-45
Multitasking, defined      174
multithreaded applications      10 35 57 173-84
Non-intrusiveness      7
NTVDM simulated environment      76-77
ObjectPascal      16
off-by-one error      10-11
One-to-many and many-to-one mapping problems      213
Operating system (OS)      55-94
Operating system (OS), generic OS-debugger operating system (OS), interaction model      56-57
Operating system (OS), hybrid OS debugging operating system (OS), support      72-77
Operating system (OS), interface      33-34
Operating system (OS), kernel debuggers      4 17-19
Operating system (OS), minimum required cooperation between debugger and      55-56
Operating system (OS), thread control      176-77
Operating system (OS), thread-created problems and      179-80
Optimized code, debugging (optimizations)      205-19
Optimized code, debugging (optimizations), difficulty of      207
Optimized code, debugging (optimizations), importance of      206
Optimized code, debugging (optimizations), keeping the optimizations on optimized code, debugging (optimizations), during debugging      207
Optimized code, debugging (optimizations), overview of      208-11
Optimized code, debugging (optimizations), overview of, code hoisting      208
Optimized code, debugging (optimizations), overview of, code motion      208
Optimized code, debugging (optimizations), overview of, common subexpression optimized code, debugging (optimizations), overview of, elimination      210
Optimized code, debugging (optimizations), overview of, constant folding      208-9
Optimized code, debugging (optimizations), overview of, copy propagation      209
Optimized code, debugging (optimizations), overview of, cross jumping      211
Optimized code, debugging (optimizations), overview of, dead store elimination      209
Optimized code, debugging (optimizations), overview of, dead variable elimination      209
Optimized code, debugging (optimizations), overview of, in-line procedure expansion      210-11
Optimized code, debugging (optimizations), overview of, induction variable elimination      210
Optimized code, debugging (optimizations), overview of, loop unrolling      211
Optimized code, debugging (optimizations), overview of, register allocation      210
Optimized code, problems created by      211-13
Optimized code, problems created by, no corresponding object code      213
Optimized code, problems created by, one-to-many and many-to-one mapping problems      213
Optimized code, problems created by, reported variable value is incorrect      212-13
Optimized code, problems created by, variable is unknown to debugger      212
Optimized code, RISC and      206-7
Optimizing compiler      9
OS/2, DosDebug()      67-70
OS/2, weaknesses in debug support      68-70
OutputDebugString()      74
Parallel architecture debugging      201-1
Pass counts      116-17
Pentium CPUs      45-47
performance analysis      7
Physical breakpoints      108
Post-mortem debuggers      200-201
PowerPC      51-52
Presentation Manager (OS/2)      70
Procedure calling conventions      137
Processes      35
Processes, creation/deletion events      102-3
processes, defined      174
Program stack      136-44
Prologue, unwinding the stack and      139 40
Ptrace()      60-61
Queues, single input      186
ReadProcessMemory()      74
Register allocation      210 217
Registers pane      30
Registers viewing      147 48
1 2
       © Электронная библиотека попечительского совета мехмата МГУ, 2004-2022
Электронная библиотека мехмата МГУ | Valid HTML 4.01! | Valid CSS! О проекте