pwndbg-lldb-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pwndbg_get_eventsA | Query debugger events recorded for a session. Returns events such as breakpoint hits, signals, crashes, and process exits detected during command execution or by the background monitor. Args: session_id: The UUID of the session. limit: Maximum number of events to return (default 50). event_type: Filter by event type (e.g. "breakpoint_hit", "signal", "crash", "exited", "stopped"). None returns all types. |
| pwndbg_start_monitorA | Start the background event monitor for a session. The monitor watches for asynchronous debugger events (breakpoint hits, signals, crashes) between tool calls. Events are recorded in the session's event log and trigger MCP resource-updated notifications. This is optional — all core debugging functionality works without the monitor. The monitor is useful for long-running programs where events may occur outside of active tool calls. Args: session_id: The UUID of the session. |
| pwndbg_stop_monitorC | Stop the background event monitor for a session. Args: session_id: The UUID of the session. |
| pwndbg_startA | Start a new LLDB session with pwndbg loaded. Spawns an LLDB process, optionally loads pwndbg via Args:
lldb_path: Path to the LLDB binary (default: "lldb").
working_dir: Working directory for the session.
pwndbg_path: Path to pwndbg's lldbinit.py entry point. If provided,
pwndbg will be loaded automatically via See: https://pwndbg.re/2025.05.30/reference/pwndbg/dbg/lldb/ |
| pwndbg_terminateA | Terminate a pwndbg session and free all resources. Args: session_id: The UUID of the session to terminate. |
| pwndbg_list_sessionsA | List all active pwndbg sessions with their IDs, targets, and working directories. |
| pwndbg_commandA | Execute an arbitrary LLDB or pwndbg command (escape hatch). Use this for any command not exposed as a dedicated tool. Both native LLDB commands and pwndbg-registered commands are supported. Args: session_id: The UUID of the session. command: The full command string to execute. See: https://pwndbg.re/2025.05.30/reference/pwndbg/dbg/lldb/ |
| pwndbg_loadC | Load a program into the debugger. Sets the target executable and optional arguments. The program path is resolved relative to the session's working directory if not absolute. Args: session_id: The UUID of the session. program: Path to the executable. arguments: Optional list of program arguments. |
| pwndbg_attachB | Attach to a running process by PID. Args: session_id: The UUID of the session. pid: Process ID to attach to. |
| pwndbg_load_coreB | Load a core dump file for post-mortem analysis. Args: session_id: The UUID of the session. program: Path to the executable that generated the core. core_path: Path to the core dump file. |
| pwndbg_runA | Run the loaded program from the beginning. Blocks until the process stops (breakpoint, signal, exit) or times out. Streams intermediate debugger output as MCP progress/log notifications. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait for the process to stop (default 30). |
| pwndbg_entryA | Start the program and stop at its ELF entry point address. pwndbg command: entry Source: pwndbg/commands/start.py Category: Start Unlike 'start' (GDB-only), 'entry' works on LLDB. It sets a temporary breakpoint at the binary's entry point and runs. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). |
| pwndbg_continueA | Continue program execution until the next breakpoint or exit. Blocks until the process stops or times out. Streams intermediate debugger output as MCP progress/log notifications. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait for the process to stop (default 30). |
| pwndbg_stepA | Step into the next source line or instruction. Args: session_id: The UUID of the session. instructions: If True, step a single machine instruction (si) instead of a source line (s). |
| pwndbg_nextA | Step over the next source line or instruction (does not enter calls). Args: session_id: The UUID of the session. instructions: If True, step over a single machine instruction (ni) instead of a source line (n). |
| pwndbg_finishA | Execute until the current function returns. Blocks until the function returns or times out. Streams intermediate debugger output as MCP progress/log notifications. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). |
| pwndbg_killB | Kill the running process. Args: session_id: The UUID of the session. |
| pwndbg_nextjmpA | Break at the next jump instruction. pwndbg command: nextjmp (alias: nextjump) Source: pwndbg/commands/next.py Category: Step/Next/Continue Continues execution until the next jump-type instruction (jmp, je, jne, etc.) is reached, which is useful for tracing control flow decisions. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_nextcallA | Break at the next call instruction, optionally filtered by symbol regex. pwndbg command: nextcall Source: pwndbg/commands/next.py Category: Step/Next/Continue Args: session_id: The UUID of the session. symbol_regex: Optional regex to match the call target symbol name. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_nextretA | Break at the next return-like instruction (ret, retf, iret, sysret). pwndbg command: nextret Source: pwndbg/commands/next.py Category: Step/Next/Continue Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_stepretA | Step to the next return instruction (single-steps until ret is found). pwndbg command: stepret Source: pwndbg/commands/next.py Category: Step/Next/Continue Unlike nextret which sets a breakpoint, this command single-steps through every instruction until a return instruction is reached. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_nextproginstrA | Break at the next instruction belonging to the running program. pwndbg command: nextproginstr Source: pwndbg/commands/next.py Category: Step/Next/Continue Useful for skipping over library code to reach the next instruction that belongs to the main binary. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_stepoverB | Set a breakpoint on the instruction after the current one and continue. pwndbg command: stepover (alias: so) Source: pwndbg/commands/next.py Category: Step/Next/Continue This is pwndbg's enhanced step-over that works at the instruction level by setting a breakpoint on the next instruction address. Args: session_id: The UUID of the session. addr: Optional address to step over at (defaults to current PC). timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_nextsyscallA | Break at the next syscall instruction (without taking branches). pwndbg command: nextsyscall (alias: nextsc) Source: pwndbg/commands/next.py Category: Step/Next/Continue Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_stepsyscallA | Step to the next syscall instruction (follows branches). pwndbg command: stepsyscall (alias: stepsc) Source: pwndbg/commands/next.py Category: Step/Next/Continue Unlike nextsyscall, this follows branches by single-stepping through all instructions until a syscall is found. Args: session_id: The UUID of the session. timeout: Maximum seconds to wait (default 30). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_stepuntilasmA | Step until a specific assembly instruction is reached. pwndbg command: stepuntilasm Source: pwndbg/commands/next.py Category: Step/Next/Continue Single-steps until an instruction matching the given mnemonic (and optionally operand string) is found. This can be slow, so the default timeout is 60s. Args: session_id: The UUID of the session. mnemonic: The instruction mnemonic to match (e.g. "syscall", "call", "mov"). op_str: Optional operand string to match. timeout: Maximum seconds to wait (default 60). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/next/ |
| pwndbg_set_breakpointA | Set a breakpoint at the given location, optionally with a condition. Args: session_id: The UUID of the session. location: Function name, address, or file:line to break at. condition: Optional condition expression for the breakpoint. |
| pwndbg_breakpoint_listA | List all breakpoints in the current session. Args: session_id: The UUID of the session. |
| pwndbg_breakpoint_deleteA | Delete a breakpoint by its ID number. Args: session_id: The UUID of the session. breakpoint_id: The numeric breakpoint ID to delete. |
| pwndbg_set_breakpoint_advancedA | Set a breakpoint with full control over address, module, auto-continue, and naming. Supports all common breakpoint styles:
Args: session_id: The UUID of the session. address: Address or file:line expression. Mutually exclusive with name. name: Symbol name to break on. Mutually exclusive with address. module: Restrict breakpoint to this module (e.g., "Xmllite"). offset: Module-relative offset (hex string). Requires module to be set. auto_continue: If True, breakpoint auto-continues (counts hits without stopping). bp_name: Assign a human-readable name to the breakpoint for later reference. condition: Optional condition expression (breakpoint only fires if true). one_shot: If True, breakpoint is deleted after first hit. |
| pwndbg_breakpoint_list_parsedA | List all breakpoints with structured, machine-parseable output. Returns a JSON-formatted list of breakpoints, each with: id, name, address, module, resolved, hit_count, auto_continue, enabled This is more reliable than parsing raw Args: session_id: The UUID of the session. |
| pwndbg_command_batchA | Execute multiple LLDB/pwndbg commands sequentially in a single call. This avoids multiple MCP round-trips for setup operations like setting several breakpoints, configuring settings, or running a sequence of inspection commands. Args: session_id: The UUID of the session. commands: List of command strings to execute in order. Returns: Combined output from all commands, with clear separators. |
| pwndbg_run_until_stopA | Run or continue the program and block until it stops or exits. Waits until the process reaches a stopped state (breakpoint, crash, signal) or exits, then returns the stop reason along with register context. Streams intermediate debugger output as MCP progress/log notifications so the client can observe execution in real-time. Args: session_id: The UUID of the session. action: "run" to start from beginning, "continue" to resume. timeout: Maximum seconds to wait for the process to stop. |
| pwndbg_watchpointA | Set a watchpoint on a memory address or variable. Args: session_id: The UUID of the session. expression: The variable or address expression to watch. watch_type: Type of access to watch — "read", "write", or "read_write". |
| pwndbg_contextA | Display the pwndbg context — registers, disassembly, stack, backtrace, etc. pwndbg command: context (alias: ctx) Source: pwndbg/commands/context.py Category: Context This is pwndbg's signature command. It shows a unified view of the current debugger state including registers, nearby disassembly, stack contents, backtrace, and any additional context sections configured by the user. Args: session_id: The UUID of the session. sections: Optional space-separated list of sections to show (e.g. "regs disasm stack backtrace"). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/context/ |
| pwndbg_contextoutputB | Configure where a context section's output is sent. pwndbg command: contextoutput (alias: ctx-out) Source: pwndbg/commands/context.py Category: Context Args: session_id: The UUID of the session. section: The context section name (e.g. "regs", "disasm", "stack"). value: The output target or configuration value. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/context/ |
| pwndbg_contextwatchA | Add a watched expression to the context display. pwndbg command: contextwatch (alias: ctx-watch, cwatch) Source: pwndbg/commands/context.py Category: Context Adds an expression that will be evaluated and displayed every time the context refreshes. Args: session_id: The UUID of the session. expression: The expression to watch (e.g. "$rax", "(int)$rsp"). cmd: Optional command to use for display (e.g. "hexdump", "telescope"). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/context/ |
| pwndbg_contextunwatchB | Remove a watched expression from the context display. pwndbg command: contextunwatch (alias: ctx-unwatch, cunwatch) Source: pwndbg/commands/context.py Category: Context Args: session_id: The UUID of the session. num: The watch number to remove. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/context/ |
| pwndbg_telescopeA | Recursively dereference pointers starting at an address (default: $sp). pwndbg command: telescope Source: pwndbg/commands/telescope.py Category: Memory Telescope is one of pwndbg's most useful commands. It reads pointer-sized values from memory and follows the chain of dereferences, showing the ultimate value (string, address, symbol, etc.). Args: session_id: The UUID of the session. address: Starting address or register (default: $sp). count: Number of pointer-sized entries to show. reverse: If True, show entries in reverse order. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/telescope/ |
| pwndbg_stackB | Show stack contents using telescope-style dereference display. pwndbg command: stack Source: pwndbg/commands/telescope.py Category: Stack Equivalent to Args: session_id: The UUID of the session. count: Number of entries to show (default: 8). offset: Offset from $sp in pointer-sized units. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/telescope/ |
| pwndbg_stackfB | Show the entire current stack frame contents. pwndbg command: stackf Source: pwndbg/commands/telescope.py Category: Stack Dereferences the stack from $sp to $bp, showing the entire current stack frame. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/telescope/ |
| pwndbg_hexdumpB | Hex dump memory at the specified address. pwndbg command: hexdump Source: pwndbg/commands/hexdump.py Category: Memory Shows memory in canonical hex+ASCII format, similar to xxd/hexdump. Args: session_id: The UUID of the session. address: Address or register to dump from (default: $sp). count: Number of bytes to dump. code: Output format — "py" for Python bytes literal, "c" for C array. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/hexdump/ |
| pwndbg_vmmapA | Print the virtual memory map of the process. pwndbg command: vmmap (aliases: lm, address, vprot, libs) Source: pwndbg/commands/vmmap.py Category: Memory Shows all memory regions with their start/end addresses, permissions, and mapped file names. Can be filtered by address, module name, or permission flags. Args: session_id: The UUID of the session. filter_str: Optional filter — an address or module name substring. writable: If True, only show writable regions. executable: If True, only show executable regions. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/vmmap/ |
| pwndbg_searchA | Search process memory for byte sequences, strings, pointers, or integers. pwndbg command: search Source: pwndbg/commands/search.py Category: Memory Searches all mapped memory regions for the given value. Supports multiple search types and can be filtered to specific permission regions. Args: session_id: The UUID of the session. value: The value to search for. type: Search type — "bytes", "byte", "short", "dword", "qword", "pointer", "string". hex_encoded: If True, interpret value as hex-encoded bytes. executable: If True, only search executable regions. writable: If True, only search writable regions. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/search/ |
| pwndbg_xinfoB | Show extended information about an address — offsets from useful locations. pwndbg command: xinfo Source: pwndbg/commands/xinfo.py Category: Memory Displays what memory region the address belongs to, along with offsets from the base of the containing page, binary, stack, heap, etc. Args: session_id: The UUID of the session. address: Address to inspect (default: $pc). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/xinfo/ |
| pwndbg_distanceA | Calculate the distance between two addresses. pwndbg command: distance Source: pwndbg/commands/distance.py Category: Memory If only one argument is given, prints the offset from the address's page base. Useful for calculating offsets for exploits. Args: session_id: The UUID of the session. a: First address or expression. b: Optional second address or expression. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/distance/ |
| pwndbg_probeleakA | Pointer-scan memory for possible information leaks. pwndbg command: probeleak Source: pwndbg/commands/probeleak.py Category: Memory Scans memory at the given address for values that look like pointers into known regions (stack, heap, libc, binary, etc.), which could indicate exploitable information leaks. Args: session_id: The UUID of the session. address: Address to start scanning (default: $sp). count: Number of bytes to scan (default: 0x40). max_distance: Maximum distance for pointer matching (0 = unlimited). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/probeleak/ |
| pwndbg_leakfindA | Attempt to find a pointer leak chain from a starting address. pwndbg command: leakfind Source: pwndbg/commands/leakfind.py Category: Memory Walks pointer chains to find paths from a controlled region to interesting targets (libc, stack, etc.). Extremely useful for exploit development. Args: session_id: The UUID of the session. address: Starting address (default: $sp). page_name: Target page name to reach. max_depth: Maximum chain depth (default: 4). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/leakfind/ |
| pwndbg_p2pB | Pointer-to-pointer chain search across memory mappings. pwndbg command: p2p Source: pwndbg/commands/p2p.py Category: Memory Finds chains of pointers between different memory regions, useful for discovering pivot chains in exploit development. Args: session_id: The UUID of the session. mapping_names: Optional comma-separated list of mapping name ranges to search. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/p2p/ |
| pwndbg_mprotectA | Call the mprotect syscall to change memory permissions. pwndbg command: mprotect Source: pwndbg/commands/mprotect.py Category: Memory Directly invokes mprotect(2) on the target process. Useful for making regions writable or executable during exploit development. Args: session_id: The UUID of the session. addr: Address of the memory region. length: Length of the region in bytes. prot: Protection flags (e.g. "7" for rwx, "5" for r-x). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/mprotect/ |
| pwndbg_mmapA | Call the mmap syscall to allocate new memory in the target process. pwndbg command: mmap Source: pwndbg/commands/mmap.py Category: Memory Directly invokes mmap(2) on the target. Useful for creating executable shellcode regions or scratch memory during exploitation. Args: session_id: The UUID of the session. addr: Desired address (0 for OS-chosen). length: Size of mapping (default: 0x1000). prot: Protection flags (default: "7" = rwx). flags: mmap flags (default: "0x22" = MAP_PRIVATE | MAP_ANONYMOUS). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/mmap/ |
| pwndbg_info_registersB | Display CPU registers. Args: session_id: The UUID of the session. register: Optional specific register name to read. |
| pwndbg_cpsrA | Display ARM CPSR / xPSR / PSTATE register bits. pwndbg command: cpsr (aliases: xpsr, pstate) Source: pwndbg/commands/cpsr.py Category: Register Arch: ARM, AArch64 only Decodes the ARM condition flags register into individual flag bits with human-readable names. Args: session_id: The UUID of the session. cpsr_value: Optional CPSR value to decode (default: read from register). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/cpsr/ |
| pwndbg_setflagB | Modify a CPU flag in the flags register. pwndbg command: setflag (alias: flag) Source: pwndbg/commands/flags.py Category: Register Allows setting individual flag bits (ZF, CF, SF, OF, etc.) without modifying the entire flags register. Args: session_id: The UUID of the session. flag: Flag name (e.g. "ZF", "CF", "SF", "OF"). value: Value to set (0 or 1). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/flags/ |
| pwndbg_nearpcB | Disassemble instructions near the PC with enhanced annotation. pwndbg command: nearpc (aliases: pdisass, u) Source: pwndbg/commands/nearpc.py Category: Disassemble pwndbg's enhanced disassembler that shows resolved symbols, register values, memory dereferences, and branch target annotations inline with the disassembly. Args: session_id: The UUID of the session. address: Address to disassemble at (default: $pc). lines: Number of instructions to show. emulate: If True, emulate instructions to show predicted register values. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/nearpc/ |
| pwndbg_emulateA | Disassemble with instruction emulation to predict register/memory state. pwndbg command: emulate Source: pwndbg/commands/nearpc.py Category: Disassemble Like nearpc but with emulation enabled by default. Shows what registers and memory values would be after each instruction executes, without actually executing them. Args: session_id: The UUID of the session. address: Address to start emulation (default: $pc). lines: Number of instructions to emulate. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/nearpc/ |
| pwndbg_disassembleC | Disassemble code using LLDB's native disassembler. Args: session_id: The UUID of the session. location: Function name or address to disassemble. count: Number of instructions (default: 10). |
| pwndbg_argcA | Print the argument count (argc) of the running program. pwndbg command: argc Source: pwndbg/commands/argv.py Category: Linux/libc/ELF Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/argv/ |
| pwndbg_argvA | Print the argument vector (argv) of the running program. pwndbg command: argv Source: pwndbg/commands/argv.py Category: Linux/libc/ELF Args: session_id: The UUID of the session. index: Optional specific argv index to print. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/argv/ |
| pwndbg_envpA | Print environment variables of the running program. pwndbg command: envp (aliases: env, environ) Source: pwndbg/commands/argv.py Category: Linux/libc/ELF Args: session_id: The UUID of the session. name: Optional specific environment variable name. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/argv/ |
| pwndbg_dumpargsA | Dump determined arguments for the current call/syscall instruction. pwndbg command: dumpargs (alias: args) Source: pwndbg/commands/dumpargs.py Category: Misc Automatically detects the calling convention and displays function arguments with their resolved values at the current call site. Args: session_id: The UUID of the session. force: If True, force argument dumping even if not at a call site. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/dumpargs/ |
| pwndbg_retaddrB | Print stack addresses that contain return addresses. pwndbg command: retaddr Source: pwndbg/commands/retaddr.py Category: Stack Scans the stack for values that look like return addresses (pointers into executable regions), useful for finding ROP pivot targets. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/retaddr/ |
| pwndbg_canaryA | Display the stack canary value. pwndbg command: canary Source: pwndbg/commands/canary.py Category: Stack Shows the current stack canary (stack guard) value. The canary is used by stack-smashing protection (SSP / -fstack-protector) to detect buffer overflows. Args: session_id: The UUID of the session. show_all: If True, show canary for all threads. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/canary/ |
| pwndbg_sigreturnA | Display the SigreturnFrame at a specific address. pwndbg command: sigreturn Source: pwndbg/commands/sigreturn.py Category: Misc Arch: x86-64, i386, aarch64, arm Parses and displays a sigreturn frame structure, which is used in SROP (Sigreturn-Oriented Programming) exploits. Args: session_id: The UUID of the session. address: Address of the sigreturn frame (default: auto-detect). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/sigreturn/ |
| pwndbg_valistB | Dump the arguments of a va_list (variadic argument list). pwndbg command: valist Source: pwndbg/commands/valist.py Category: Misc Args: session_id: The UUID of the session. addr: Address of the va_list structure. count: Number of arguments to dump (default: 8). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/valist/ |
| pwndbg_checksecA | Check binary security properties (RELRO, NX, canary, PIE, RPATH, etc.). pwndbg command: checksec Source: pwndbg/commands/checksec.py Category: Misc Analyzes the ELF binary for security mitigations. Shows RELRO level, stack canary, NX (non-executable stack), PIE (position-independent), RPATH/RUNPATH, Fortify, and other compiler/linker security features. Args: session_id: The UUID of the session. file: Optional path to check (default: loaded binary). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/checksec/ |
| pwndbg_elfsectionsB | Print ELF section mappings from the binary header. pwndbg command: elfsections Source: pwndbg/commands/elf.py Category: Linux/libc/ELF Shows all ELF sections (.text, .data, .bss, .got, .plt, etc.) with their addresses, sizes, and flags. Args: session_id: The UUID of the session. no_rebase: If True, show file offsets instead of rebased addresses. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/elf/ |
| pwndbg_gotpltB | Print symbols found in the .got.plt section. pwndbg command: gotplt Source: pwndbg/commands/elf.py Category: Linux/libc/ELF Shows the GOT/PLT entries with their current resolved values. Useful for identifying which library functions have been resolved by the dynamic linker. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/elf/ |
| pwndbg_pltB | Print symbols found in Procedure Linkage Table sections. pwndbg command: plt Source: pwndbg/commands/elf.py Category: Linux/libc/ELF Args: session_id: The UUID of the session. all_symbols: If True, show all PLT symbols including internal ones. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/elf/ |
| pwndbg_gotB | Show the state of the Global Offset Table. pwndbg command: got Source: pwndbg/commands/got.py Category: Linux/libc/ELF Displays GOT entries with their current values, showing which entries point to the PLT stub (unresolved) vs actual library addresses (resolved). Args: session_id: The UUID of the session. filter_str: Optional filter string to match symbol names. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/got/ |
| pwndbg_piebaseA | Calculate the virtual address from a PIE-relative offset. pwndbg command: piebase Source: pwndbg/commands/pie.py Category: Linux/libc/ELF For PIE binaries, converts a file offset (RVA) to a runtime virtual address by adding the PIE base. Args: session_id: The UUID of the session. offset: Offset from PIE base to calculate (default: 0 = show base). module: Optional module name (default: main binary). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/pie/ |
| pwndbg_linkmapA | Show the dynamic linker's link map (loaded shared objects). pwndbg command: linkmap Source: pwndbg/commands/linkmap.py Category: Linux/libc/ELF Displays the linked list of loaded shared objects maintained by the dynamic linker (ld.so), showing base addresses and file paths. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/linkmap/ |
| pwndbg_dtA | Dump type information, optionally overlaid on a memory address. pwndbg command: dt Source: pwndbg/commands/dt.py Category: Misc Displays the fields, offsets, and sizes of a struct/type. If an address is provided, reads the memory at that address and displays actual values for each field. Args: session_id: The UUID of the session. typename: The type name to inspect (e.g. "struct malloc_chunk"). address: Optional memory address to overlay the type onto. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/dt/ |
| pwndbg_heapA | Iteratively print chunks on a heap. pwndbg command: heap Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Walks the heap and prints each chunk's metadata (size, flags, fd/bk pointers for freed chunks). Defaults to the current thread's active heap. Args: session_id: The UUID of the session. addr: Optional arena or heap address. verbose: If True, show extended chunk details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_arenaB | Print the contents of a malloc arena. pwndbg command: arena Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Shows the malloc_state structure fields including top chunk, bins, system_mem, and other arena metadata. Defaults to the current thread's arena. Args: session_id: The UUID of the session. addr: Optional arena address (default: current thread's arena). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_arenasB | List all arenas in the process. pwndbg command: arenas Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_binsA | Print all bin contents — fast, small, large, unsorted, and tcache. pwndbg command: bins Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Displays a unified view of all bin types in the ptmalloc2 allocator. Args: session_id: The UUID of the session. addr: Optional arena address. tcache_addr: Optional tcache address. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_fastbinsA | Print the contents of an arena's fastbins. pwndbg command: fastbins Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Fastbins are singly-linked LIFO free lists for small allocations (up to 0x80 bytes on 64-bit). Shows each fastbin index with its chain. Args: session_id: The UUID of the session. addr: Optional arena address. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_unsortedbinA | Print the contents of an arena's unsorted bin. pwndbg command: unsortedbin Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap The unsorted bin is a doubly-linked list where freed chunks go before being sorted into small/large bins. A key target for heap exploits. Args: session_id: The UUID of the session. addr: Optional arena address. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_smallbinsA | Print the contents of an arena's small bins. pwndbg command: smallbins Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Small bins hold chunks from 0x20 to 0x3F0 bytes (64-bit) in doubly-linked lists sorted by size. Args: session_id: The UUID of the session. addr: Optional arena address. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_largebinsA | Print the contents of an arena's large bins. pwndbg command: largebins Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Large bins hold chunks >= 0x400 bytes (64-bit) in doubly-linked lists sorted by size within each bin. Args: session_id: The UUID of the session. addr: Optional arena address. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_tcacheB | Print tcache contents for the current thread. pwndbg command: tcache Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Thread-local caching (tcache) was introduced in glibc 2.26. Each thread has 64 singly-linked bins for small allocations, providing fast thread-local allocation without arena locks. Args: session_id: The UUID of the session. addr: Optional tcache address. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_tcachebinsB | Print tcache bin entries (free list chains per size class). pwndbg command: tcachebins Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Args: session_id: The UUID of the session. addr: Optional tcache address. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_malloc_chunkC | Display detailed information about a specific malloc chunk. pwndbg command: malloc_chunk Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Shows the chunk header fields (prev_size, size, flags) and for freed chunks, the fd/bk pointers. Args: session_id: The UUID of the session. addr: Address of the malloc chunk. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_top_chunkA | Print information about the top chunk (wilderness) of an arena. pwndbg command: top_chunk Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap The top chunk is the last chunk in the heap, used to service allocations when no suitable freed chunk is available. Args: session_id: The UUID of the session. addr: Optional arena address. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_mpA | Print the mp_ (malloc parameters) struct contents. pwndbg command: mp Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Shows global malloc tuning parameters like mmap_threshold, trim_threshold, top_pad, etc. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_vis_heap_chunksB | Visualize heap chunks with a colorful graphical representation. pwndbg command: vis_heap_chunks (alias: vis) Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Renders heap chunks as a visual map with color-coded regions showing chunk boundaries, headers, and data. One of pwndbg's most distinctive features for heap analysis. Args: session_id: The UUID of the session. addr: Optional starting address. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_try_freeA | Simulate what would happen if free() were called on an address. pwndbg command: try_free Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Walks through glibc's free() logic and reports which checks would pass or fail. Invaluable for debugging heap exploits — shows exactly why a crafted chunk would or wouldn't pass free()'s validation. Args: session_id: The UUID of the session. addr: Address to simulate freeing. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_find_fake_fastA | Find fake fastbin chunk candidates near a target address. pwndbg command: find_fake_fast Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Searches memory near the target for byte sequences that could be interpreted as valid fastbin chunk headers. Used to find targets for fastbin attacks (e.g. overwriting __malloc_hook). Args: session_id: The UUID of the session. target_address: Address to search near. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_hiA | Display heap information for a specific chunk address. pwndbg command: hi Source: pwndbg/commands/ptmalloc2.py Category: GLibc ptmalloc2 Heap Shows which bin a chunk belongs to, its neighbors, and allocation status. Args: session_id: The UUID of the session. addr: Address of the chunk. verbose: If True, show extended details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/ptmalloc2/ |
| pwndbg_thread_listC | List all threads in the current process (LLDB native). Args: session_id: The UUID of the session. |
| pwndbg_thread_selectB | Select a specific thread and show its backtrace. Args: session_id: The UUID of the session. thread_id: The thread index to select. |
| pwndbg_threadsA | List all threads with pwndbg's enhanced formatting. pwndbg command: threads Source: pwndbg/commands/tls.py Category: Linux/libc/ELF Shows threads with their IDs, names, and current PC locations using pwndbg's enhanced display format. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/tls/ |
| pwndbg_tlsC | Print the Thread Local Storage (TLS) base address. pwndbg command: tls Source: pwndbg/commands/tls.py Category: Linux/libc/ELF Shows the TLS base address and optionally the full TLS structure contents. The TLS contains thread-local variables, the stack canary, and other per-thread data. Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/tls/ |
| pwndbg_cyclicA | Generate or look up a cyclic (De Bruijn) pattern for offset calculation. pwndbg command: cyclic Source: pwndbg/commands/cyclic.py Category: Misc Generates patterns where every N-byte subsequence is unique, making it easy to determine crash offsets. Can also look up a value in the pattern to find the offset. Args: session_id: The UUID of the session. length: Length of pattern to generate (mutually exclusive with lookup). lookup: Value to look up in the pattern (finds offset). detect: If True, auto-detect the crash offset from registers. count: Pattern element count (default: 100). See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/cyclic/ |
| pwndbg_ropC | Find ROP gadgets using ROPgadget. pwndbg command: rop (alias: ropgadget) Source: pwndbg/commands/rop.py Category: Integrations Searches the loaded binary for useful ROP gadgets. Requires ROPgadget to be installed. Args: session_id: The UUID of the session. grep: Optional regex to filter gadgets. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/rop/ |
| pwndbg_onegadgetA | Find one-gadget (magic gadget) RCE gadgets in libc. pwndbg command: onegadget Source: pwndbg/commands/onegadget.py Category: Linux/libc/ELF Arch: x86-64, i386, aarch64 Searches for single-gadget code paths in libc that directly call execve("/bin/sh", ...). These are the holy grail for exploitation since overwriting a single function pointer gives a shell. Args: session_id: The UUID of the session. verbose: If True, show constraint details. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/onegadget/ |
| pwndbg_patchA | Patch an instruction at the given address with new code or bytes. pwndbg command: patch Source: pwndbg/commands/patch.py Category: Misc Assembles the given instruction and writes the bytes at the target address. Useful for live-patching binaries during analysis. Args: session_id: The UUID of the session. address: Address to patch. instruction: Assembly instruction or hex bytes to write. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/patch/ |
| pwndbg_patch_listB | List all applied patches. pwndbg command: patch-list Source: pwndbg/commands/patch.py Category: Misc Args: session_id: The UUID of the session. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/patch/ |
| pwndbg_patch_revertB | Revert a patch at the given address. pwndbg command: patch-revert Source: pwndbg/commands/patch.py Category: Misc Args: session_id: The UUID of the session. address: Address of the patch to revert. See: https://pwndbg.re/2025.05.30/reference/pwndbg/commands/patch/ |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Micro-Evaluation-Group/pwndbg-lldb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server