.NET DEBUGGING
OOPSOOADSOLIDDPDSSQLXMLFAQ
Module 7 - Debugger Fundamentals
Debugger
Inspect and Monitor Execution of Program
For Instance cdb.exe, windbg.exe etc.
How To
Debugger UsageCMD@ cdb.exe /?
cdb.exe : Program, CUI Symbolic Debugger

/? : Switch, Specifies Help Message
Alternatively, RUN@ windbg.exe → Help → Contents → Debugger Reference → Command-Line Options → WinDbg Command-Line Options
Debugger Engine
Examine and Manipulate Debugging Target
Windows Symbolic Debugger Engine
Application Extension
dbgeng.dll
x86 C:\Program Files (x86)\Windows Kits\10\Debuggers\x86\dbgeng.dll
x64 C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\dbgeng.dll
Dbg Eng : API
Exported Functions like DebugConnect, DebugCreate, DebugCreateEx etc.
Debugger Command
Instructions to Perform Task and Operation
For Instance Standard, Meta, Extension etc.
Usage
Standard Commandg (Go) etc.
Meta Command (Starts with .).cls (Clear Screen) etc.
Extension Command (Starts with !)!peb (Process Environment Block) etc.
. : Period Character

! : Exclamation Character
Standard aka Regular Command, Meta aka Dot Command and Extension aka Bang Command
Debugger Extension
Additional Commands and Features
For Instance exts.dll, uext.dll etc.
How To
List Debugger ExtensionCDB@ .chain
.chain : Meta Command, To Display Loaded Debugger Extension
Alternatively, RUN@ windbg.exe → View → Command (Alt+1) → .chain
Debugging Symbol
Instructions to Map Address to Name
For Instance *.pdb etc.
How To
Load Debugging SymbolCDB@ .reload
.reload : Meta Command, To Reload Module Symbol
Alternatively, RUN@ windbg.exe → View → Command (Alt+1) → .reload
User Mode
Run in Applications, Application Extensions and Subsystems
Thread Access Restricted Mode
How To
Access User ModeCMD@ cdb.exe -p {PId}

CMD@ cdb.exe -o {Exe} [Args]
cdb.exe : Program, CUI Symbolic Debugger

-p : Switch, Specifies Process Identifier

{PId} : Parameter, Process Identifier

-o : Switch, Specifies Target Executable

{Exe} : Parameter, Executable File Name

[Args] : Optional Parameter, Command Line Arguments
Alternatively, RUN@ windbg.exe → File → Attach to a Process... (F6) → Process Identifier

Alternatively, RUN@ windbg.exe → File → Open Executables... (Ctrl+E) → Executable File Name
Kernel Mode
Run in Operating System, Privileged Programs and Device Drivers
Processor Access Privileged Mode
How To
Access Kernel ModeCMD@ kd.exe -kl
kd.exe : Program, Kernel Debugger

-kl : Switch, Specifies Local Machine
Alternatively, RUN@ windbg.exe → File → Kernel Debug... (Ctrl+K) → Local
Live Debugging
Analyze State of Running Process
For Instance Attaching, Spawning etc.
How To
Attach to ProcessCMD@ cdb.exe -p {PId}
Spawn New ProcessCMD@ cdb.exe -o {Exe} [Args]
cdb.exe : Program, CUI Symbolic Debugger

-p : Switch, Specifies Process Identifier

{PId} : Parameter, Process Identifier

-o : Switch, Specifies Target Executable

{Exe} : Parameter, Executable File Name

[Args] : Optional Parameter, Command Line Arguments
Alternatively, RUN@ windbg.exe → File → Attach to a Process... (F6) → Process Identifier

Alternatively, RUN@ windbg.exe → File → Open Executables... (Ctrl+E) → Executable File Name
Postmortem Debugging
Analyze Memory Dump of Process
Also Known As Dump Analysis
How To
Analyze Dump FileCMD@ cdb.exe -z {Dump}
cdb.exe : Program, CUI Symbolic Debugger

-z : Switch, Specifies Dump File

{Dump} : Parameter, Dump File Name
Alternatively, RUN@ windbg.exe → File → Open Crash Dump... (Ctrl+D) → Dump File Name
ARG
Argument

CDB
Console Debugger

CUI
Character User Interface

DBG
Debugger

DLL
Dynamic Link Library

DML
Debugger Markup Language

ENG
Engine

EXE
Executable

EXT
Extension

KD
Kernel Debugger

PEB
Process Environment Block

PID
Process Identifier

WIN
Windows