DebugForge
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| T32_NODE | No | TRACE32 host address | localhost |
| T32_PORT | No | TRACE32 API port | 20000 |
| T32_PROTOCOL | No | Communication protocol (TCP/UDP) | TCP |
| T32_AUTO_CONNECT | No | Auto-connect on server start | false |
| T32_INSTALL_PATH | No | TRACE32 installation directory | |
| DEBUGFORGE_CONFIG | No | Path to config file | ./debugforge.toml |
Capabilities
Features and capabilities supported by this server
| 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 |
|---|---|
| connectA | Connect to a running TRACE32 PowerView instance. Args: node: TRACE32 host address (default from config or 'localhost') port: TRACE32 API port (default from config or 20000) protocol: Communication protocol - TCP or UDP (default from config or 'TCP') Returns: Connection status message with TRACE32 version info |
| disconnectA | Disconnect from TRACE32 PowerView. Returns: Disconnection confirmation message |
| statusA | Get current connection status and TRACE32 system information. Returns: Connection state, TRACE32 version, and target CPU state |
| get_callstackA | Get the current call stack (backtrace) with function names and arguments. The target must be halted. Shows the complete call chain from the current function up to the entry point, including function arguments and source context. Returns: Formatted call stack with frame numbers, function names, and arguments |
| get_localsA | Get the call stack with all local variables for each frame. The target must be halted. Shows local variable names and values for every function in the call stack. Useful for understanding program state at the point of a breakpoint or crash. Returns: Call stack with local variables expanded per frame |
| get_data_dumpA | Get a formatted memory dump (hex + ASCII) from the target. Similar to TRACE32's Data.dump window. Shows memory contents in the standard hex dump format with address, hex values, and ASCII representation. Args: address: Start address (e.g., "0xD0000000", "D:0x80000000") length: Number of bytes to dump (default: 256) width: Access width in bits — 8, 16, 32, or 64 (default: 32) Returns: Formatted hex dump with addresses, hex values, and ASCII |
| var_viewA | View a C/C++ variable, structure, array, or expression with full expansion. Shows the complete content of complex data types including nested structs, arrays, and pointer targets. Much more detailed than read_variable. The target must be halted. Args: expression: C variable name, struct member, array, or expression (e.g., "myStruct", "array[0]", "pTask->state", "%SpotLight") Returns: Formatted variable view showing all fields and values |
| get_register_viewA | Get the full register view with all CPU registers and flags. Shows all registers organized by type (data, address, system) with flags decoded. More comprehensive than read_register/read_registers. Returns: Complete formatted register dump including flags and special registers |
| get_windowA | Get the text content of any TRACE32 window command. This is the most flexible view tool — any TRACE32 command that produces a window can have its content retrieved. Use this for specialized views not covered by other tools. Examples: - "Data.List" — disassembly listing - "Var.Watch" — variable watch window - "Frame.view /Locals /ALL" — all frames with locals - "Trace.List" — trace buffer contents - "TASK.List" — OS task/thread list Args: command: TRACE32 window command (e.g., "Data.List", "Var.Watch") Returns: Formatted text content of the specified window |
| goA | Start or continue program execution on the target. Returns: Confirmation that execution was started |
| stepA | Single-step program execution. Args: mode: Step mode — "into" (step into functions), "over" (step over), "out" (step out of current function) Returns: New program counter address after step |
| haltA | Stop (break) program execution on the target. Returns: CPU state after halting |
| resetA | Reset the target CPU. Returns: Confirmation of reset |
| get_stateA | Get the current CPU/target execution state. Returns: Current state: running, stopped, power-down, or other system state |
| get_source_locationA | Get the current source file and line of the halted CPU. Returns the HLL source location (file:line) and enclosing function name for the current PC. The target must be halted and symbols must be loaded. Returns: Formatted source location (file, line, function, module) |
| step_mode_listA | List all supported step modes and their behavior. Returns: Table of step modes with descriptions |
| get_current_functionA | Get the name of the function the CPU is currently executing. Returns: Function name (or address if no debug symbols) |
| run_to_lineA | Run until execution reaches a specific source file line. Sets a temporary breakpoint at the given source location and resumes execution. The target stops when that line is reached. Args: file: Source file name (can be partial, e.g., 'main.c' or full path) line: Line number in the source file Returns: Confirmation of temporary breakpoint |
| get_run_statsA | Get quick run/halt statistics for the target. Combines CPU state, current function, source location, and elapsed runtime (if available) in one call. Returns: Aggregated run statistics |
| get_practice_stateA | Get the state of any running PRACTICE (.cmm) script. Shows whether a PRACTICE script is active, which script is running, and the current line being executed. Returns: PRACTICE script state |
| abort_practiceA | Abort the currently running PRACTICE script. Stops the active .cmm script execution immediately. Returns: Confirmation |
| get_message_lineA | Read the current TRACE32 message line content. The message line is the status bar at the bottom of the TRACE32 window that displays status messages from commands and scripts. Returns: Current message line text |
| read_memoryB | Read memory from the target at a given address. Args: address: Memory address as hex string (e.g., "0x80000000") or symbol name (e.g., "main") length: Number of bytes to read width: Access width in bits — 8, 16, 32, or 64 (default: 32) access: Access class prefix (e.g., "D:" for data, "P:" for program). Empty = default. Returns: Hex dump of memory contents |
| write_memoryA | Write data to target memory at a given address. Args: address: Memory address as hex string (e.g., "0x80000000") or symbol name data: Hex string of bytes to write (e.g., "DEADBEEF" for 4 bytes) width: Access width in bits — 8, 16, 32, or 64 (default: 32) access: Access class prefix (e.g., "D:" for data). Empty = default. Returns: Confirmation with number of bytes written |
| read_memory_cachedA | Read memory using cache-aware access (D: prefix). Shows data as the CPU sees it through its data cache, not the stale value on the bus. Essential for debugging code that modifies cached memory (e.g., shared variables in LMU on TC39x). Args: address: Memory address as hex string (e.g., "0x80000000") length: Number of bytes to read width: Access width in bits — 8, 16, 32, or 64 (default: 32) Returns: Hex dump of cached memory contents |
| read_memory_physicalA | Read physical memory bypassing the CPU cache. Reads the actual value on the memory bus, which may differ from what the CPU sees if the data cache has not been flushed. Args: address: Memory address as hex string (e.g., "0x80000000") length: Number of bytes to read width: Access width in bits — 8, 16, 32, or 64 (default: 32) Returns: Hex dump of physical memory contents |
| list_access_classesA | List all available memory access classes for TRACE32. Shows the different access class prefixes that can be used to read memory through different paths (cache, bus, peripheral, etc.). Returns: Table of access classes with descriptions |
| read_registerA | Read a single CPU register by name. Args: name: Register name (e.g., "PC", "SP", "R0", "D0", "A0") Returns: Register name and its current value |
| read_registersA | Read multiple CPU registers. Args: names: List of register names to read. If empty/None, reads all registers. core: Filter by core/unit (e.g., "CPU", "FPU"). Empty = all. Returns: Table of register names and values |
| write_registerA | Write a value to a CPU register. Args: name: Register name (e.g., "PC", "SP", "R0") value: Integer value to write Returns: Confirmation with the register's new value |
| set_breakpointA | Set a breakpoint at the specified address or symbol. Args: address: Address (hex e.g. "0x80001000") or symbol name (e.g. "main") type: Breakpoint type — "program", "read", "write", or "readwrite" impl: Implementation — "auto", "soft" (software), or "hard" (hardware) Returns: Breakpoint details confirming the set operation |
| list_breakpointsA | List all active breakpoints. Returns: Table of all breakpoints with address, type, and state |
| delete_breakpointB | Delete a breakpoint at the specified address or symbol. Args: address: Address or symbol name of the breakpoint to delete Returns: Confirmation of deletion |
| clear_all_breakpointsA | Delete all breakpoints at once. Use this to clean up all breakpoints and let the program run freely. Returns: Confirmation that all breakpoints were cleared |
| toggle_breakpointA | Enable or disable a breakpoint without deleting it. Args: address: Address or symbol name of the breakpoint enabled: True to enable, False to disable Returns: New breakpoint state |
| get_breakpoint_countA | Get the total number of breakpoints currently set. Returns: Count of all breakpoints (enabled and disabled) |
| read_variableA | Read a C/C++ variable from the target by its symbol name. The target must be halted (stopped) for variable reads to work. Args: name: Variable name as it appears in source code (e.g., "counter", "myStruct.field") Returns: Variable name and its current value |
| write_variableA | Write a value to a C/C++ variable on the target. The target must be halted (stopped) for variable writes to work. Args: name: Variable name as it appears in source code value: Value to write (integer, float, or string representation) Returns: Confirmation with the new value |
| symbol_by_nameA | Look up a debug symbol by its name to get its address. Args: name: Symbol name (function, variable, label — e.g., "main", "g_counter") Returns: Symbol address and access info |
| symbol_by_addressA | Look up a debug symbol by its address to get its name. Args: address: Memory address as hex string (e.g., "0x80001000") Returns: Symbol name at or near the given address |
| get_project_configA | Get the current DebugForge project configuration. Returns project-specific paths (ELF, MAP, scripts) and TRACE32 settings loaded from debugforge.toml and environment variables. Call this at the start of a debug session to learn about the project context. Returns: Formatted project configuration including paths and connection settings |
| execute_commandB | Execute any TRACE32 PRACTICE command string. This is the most flexible tool — any command you can type in the TRACE32 command line can be executed here (e.g., "SYStem.Up", "Data.LOAD.Elf ...", "Break.Set main", "Var.View myVar"). Args: command: TRACE32 command string to execute Returns: Success confirmation or error message from TRACE32 |
| run_practiceA | Run a PRACTICE (.cmm) script and wait for it to complete. Args: script: Path to the .cmm script file (absolute or relative to TRACE32) timeout: Maximum time to wait for script completion in seconds (default: 60) Returns: Script execution result (success or error message) |
| evaluateA | Evaluate a TRACE32 PRACTICE function or expression. Useful for querying system state, hardware info, or computing values. Examples: "SOFTWARE.VERSION()", "REGISTER(PC)", "sYmbol.BEGIN(main)" Args: expression: TRACE32 PRACTICE function or expression to evaluate Returns: Evaluation result as a string |
| set_conditional_breakpointA | Set a conditional breakpoint that only stops when a condition is true. Args: address: Address or symbol (e.g., "main", "0x80001000", "sieve\11") condition: Condition expression. HLL example: "(counter > 10) && (flag == 1)" TRACE32 example: "Register(D0)>5" language: "hll" for C/C++ syntax, "t32" for TRACE32 PRACTICE syntax Returns: Confirmation of conditional breakpoint |
| set_data_breakpointA | Set a data breakpoint that triggers on memory read/write access, optionally matching a value. Args: address: Variable name or memory address (e.g., "myVar", "0xD0000100") access: Access type — "read", "write", or "readwrite" data_value: Optional data value to match (e.g., "0x33", "0x0"). Empty = any value. data_width: Width for value matching — "byte", "word", "long", "quad", "auto" Returns: Confirmation of data breakpoint |
| set_count_breakpointA | Set a count breakpoint that stops after N-th hit. Useful for breaking in a loop at a specific iteration. Args: address: Address or symbol name count: Number of hits before stopping (e.g., 100 = stop on 100th hit) impl: "auto", "soft" (software counter, intrusive), or "hard" (on-chip counter, real-time) Returns: Confirmation of count breakpoint |
| set_task_breakpointA | Set a task-specific breakpoint that only triggers for a specific OS task/thread. Requires OS-awareness to be configured. Args: address: Address or symbol name task: Task identifier — name (e.g., "idle_task"), ID (e.g., "14"), or magic number Returns: Confirmation of task breakpoint |
| set_action_breakpointA | Set an action breakpoint that executes a TRACE32 command when hit. The target briefly stops, the command executes, then optionally resumes. Useful for logging variable values, collecting trace data, etc. Args: address: Address or symbol name command: TRACE32 command to execute on hit (e.g., "Var.print counter") resume: True to auto-resume after command (default), False to stay stopped Returns: Confirmation of action breakpoint |
| set_temporary_breakpointA | Set a temporary breakpoint that auto-deletes after first hit. Equivalent to "run to this address once". Args: address: Address or symbol name Returns: Confirmation |
| go_tillA | Run until a specific address is reached (temporary breakpoint). Args: address: Target address or symbol to run to (e.g., "main", "0x80001000") Returns: State after reaching the address (or timeout info) |
| go_upA | Run until the current function returns to its caller (step out). Returns: State after returning to caller |
| go_returnA | Run to the last instruction of the current function (before return). Unlike go_up, this stops INSIDE the current function at its return point. Returns: State at function return point |
| get_disassemblyA | Get disassembly listing at an address (or current PC if not specified). Shows mixed source and assembly code for understanding what the CPU is executing. Args: address: Start address or symbol. Empty = current PC. lines: Approximate number of lines to return (default: 30) Returns: Disassembly listing with source code interleaved |
| get_source_listingA | Get the source code listing around the current execution point. Shows HLL (C/C++) source with line numbers. The target must be halted. Args: address: Address or symbol. Empty = current PC. Returns: Source code listing |
| var_setA | Set a C/C++ variable to a new value on the target. The target must be halted. Supports any assignable lvalue. Args: name: Variable name (e.g., "counter", "myStruct.field", "array[0]") value: New value as C expression (e.g., "42", "0xFF", "NULL") Returns: Confirmation of variable modification |
| get_task_listA | Get the list of OS tasks/threads (requires OS-awareness configured). Returns: Task list with names, IDs, states, and priorities |
| get_task_stackB | Get stack information for OS tasks. Args: task: Task name or ID. Empty = all tasks. Returns: Task stack usage information |
| get_peripheral_viewA | View peripheral register contents. Args: peripheral: Peripheral name or address. Empty = open general view. Returns: Peripheral register values |
| data_setB | Write a value directly to a memory address using Data.Set. Args: address: Memory address (e.g., "D:0xF0036250", "0x80000000") value: Value to write (e.g., "0x00000008", "0xFF") width: Data width — "byte", "word" (16-bit), "long" (32-bit), "quad" (64-bit) Returns: Confirmation of write |
| build_projectA | Build the project using the configured build command. Executes the build command defined in debugforge.toml [build] section. Returns the build output including any errors or warnings. Returns: Build output (stdout + stderr) with success/failure status |
| clean_projectA | Clean the project build artifacts using the configured clean command. Returns: Clean output with success/failure status |
| disassembleA | Disassemble a function or address range from the project ELF file. Uses the configured objdump tool to produce disassembly output. Args: symbol: Function name to disassemble (e.g., "main", "ISR_Handler") address: Start address in hex (e.g., "0x80001000"). Used if symbol is empty. lines: Maximum number of lines to return (default: 50) Returns: Disassembly listing |
| analyze_mapB | Analyze the project MAP file to understand memory layout. Shows memory section sizes, symbol addresses, or searches for a specific symbol. Args: section: Filter by section name (e.g., ".text", ".bss", ".data"). Empty for overview. symbol: Search for a specific symbol in the MAP file. Returns: MAP file analysis (memory layout, section sizes, or symbol info) |
| analyze_elfA | Analyze the project ELF file structure. Uses readelf to inspect ELF headers, sections, or symbols. Args: detail: What to show — "headers", "sections", "symbols", or "size" (default: headers) Returns: ELF analysis output |
| flash_and_runA | Flash firmware to target and run to a breakpoint (default: main). Composite operation:
Args: break_at: Symbol to break at after flashing (default: "main"). Set empty to skip. Returns: Step-by-step execution results |
| build_flash_runA | Full cycle: build the project, flash firmware, and run to breakpoint. Composite operation:
This is the core "edit-compile-debug" loop tool. Args: break_at: Symbol to break at after flashing (default: "main") Returns: Step-by-step results for the entire build-flash-run cycle |
| list_debug_skillsA | List all available debug skills in the project knowledge base. Returns skill names, categories, and brief descriptions from the configured skills directory. Returns: Formatted list of available debug skills |
| get_debug_skillA | Get the full content of a specific debug skill. Args: name: Skill name or filename (e.g., "stack-overflow" or "stack-overflow.md") Returns: Full skill content including symptoms, debug strategy, root causes, and fix patterns |
| search_debug_skillsA | Search debug skills by keywords matching symptoms or categories. Searches through skill names, keywords, categories, and content body. Args: keywords: Space-separated search terms (e.g., "HardFault stack crash") Returns: Matching skills with relevance ranking |
| save_debug_skillA | Save a new debug skill to the knowledge base. Call this after successfully debugging a new type of issue to capture the experience for future reuse. Args: name: Short kebab-case name (e.g., "dma-transfer-timeout") category: Category — memory, fault, peripheral, timing, rtos, general keywords: Comma-separated keywords for search matching symptoms: Description of observable symptoms (what the user sees) strategy: Step-by-step debug strategy that worked root_causes: Common root causes for this type of issue fix_patterns: Patterns for fixing this type of issue Returns: Confirmation with the saved file path |
| trace_startA | Start on-chip trace recording using MCDS. Configures and starts the MCDS trace engine. Must be called before running the target. Call trace_stop() and trace_list() after the target halts. Args: sources: List of trace sources to enable. Supported values: "program" — instruction flow (PC trace) "write_addr" — data write addresses "write_data" — data write values "read_addr" — data read addresses "read_data" — data read values Default: ["program"] timestamps: Enable trace timestamps (default: True) Returns: Confirmation of trace configuration |
| trace_stopA | Stop the on-chip trace recording. Call after the target halts (e.g., at a breakpoint or after manual halt). Returns: Confirmation that trace recording stopped |
| trace_listA | Display the recorded trace buffer contents. Shows the trace list with instruction flow, data accesses, and timestamps (if enabled). The target must be halted. Args: max_records: Maximum number of trace records to display (default: 100) Returns: Formatted trace listing |
| trace_clearA | Clear the trace buffer. Resets the MCDS trace buffer for a fresh recording. Returns: Confirmation |
| trace_set_triggerA | Set a trace trigger breakpoint. Configures a breakpoint that controls trace recording start/stop. Args: address: Function name, symbol, or address (e.g., "sieve", "0x80001000"). Supports symbol.EXIT(func) syntax for function exit triggers. trigger_type: "stop" — stop recording at this point (TraceTrigger) "enable" — enable recording at this point (TraceEnable) "disable" — disable recording at this point Returns: Confirmation of trace trigger |
| trace_data_writeA | Configure data write trace on a variable. Records every write access to the specified variable in the trace buffer. Optionally filters by data value. Args: variable: Variable name or address (e.g., "flags[12]", "myVar", "0xD0000100") data_value: Optional filter — only trace writes matching this value (e.g., "0x33") data_width: Data width for value matching — "byte", "word", "long", "quad", "auto" Returns: Confirmation of data write trace setup |
| trace_data_readA | Configure data read trace on a variable. Records every read access to the specified variable in the trace buffer. Args: variable: Variable name or address (e.g., "myVar", "0xD0000100") Returns: Confirmation of data read trace setup |
| trace_profile_chartA | Display a profile chart from recorded trace data. Shows instruction execution statistics per function based on trace data. Requires trace data to have been recorded first. Returns: Formatted profile chart |
| trace_stateA | Get current MCDS trace state and configuration. Shows the MCDS state window with current trace source settings, buffer status, and configuration. Returns: MCDS state information |
| select_coreA | Select the active CPU core for debugging. In multicore setups, switches the debugger focus to the specified core. Subsequent commands (breakpoints, register reads, etc.) target this core. Args: core: Core number (0-based, e.g., 0, 1, 2 for TC397) Returns: Confirmation with current core state |
| get_chip_infoA | Get the detected chip/device information. Returns chip stepping, device variant, and CPU configuration. Useful for verifying the correct CPU is selected. Returns: Chip stepping, CPU type, and stepping information |
| configure_multicoreA | Configure multicore topology for AURIX devices. Mounts multiple cores into one chip for shared resources (trace, MCDS). Must be called before SYStem.Up in multicore scenarios. Based on SYStem.CONFIG.CORE command from debugger_tricore.pdf: SYStem.CONFIG.CORE maps each core to a chip position. Args: core_count: Number of cores to configure (e.g., 6 for TC397, 3 for TC377) Returns: Configuration results per core |
| sync_coresA | Synchronize Go/Step/Break across multiple cores. Uses the SYnch command to coordinate execution state between cores in SMP or synchronized AMP mode. Args: action: Synchronization action: "go" — run all synchronized cores "break" — halt all synchronized cores "step" — single-step all synchronized cores Returns: Confirmation of sync operation |
| get_all_cores_stateA | Get the execution state of all CPU cores. Queries each core's running/stopped status and PC value. Useful in multicore debugging to understand the global system state. Returns: Table showing state of each core |
| detect_cpuA | Auto-detect the connected AURIX device. Uses SYStem.DETECT.CPU to identify the connected chip automatically. Works with TC27x, TC37x, TC39x and other AURIX families. Returns: Detected CPU type and stepping |
| bmc_configureA | Configure a BenchMark Counter to count a specific hardware event. Maps a performance event to a counter slot. The counter accumulates while the target runs. Read with bmc_read() after halting. Args: counter: Counter slot — "M1CNT", "M2CNT", "M3CNT", "M4CNT", etc. event: Hardware event to count. Common TriCore events: "CYCLECOUNT" — CPU clock cycles "INSTRUCTIONCOUNT" — instructions executed "DATA_X_HIT" — data cache/buffer hits "DATA_X_CLEAN" — data cache/buffer misses "DATA_READ" — data read accesses "DATA_WRITE" — data write accesses "PROGRAM_X_HIT" — instruction cache hits "PROGRAM_X_MISS" — instruction cache misses "JUMP" — jump/branch instructions "BRANCH_PREDICTED" — correctly predicted branches "BRANCH_NOT_PREDICTED" — mispredicted branches Returns: Confirmation of counter configuration |
| bmc_readA | Read current BenchMark Counter values. Target must be halted. Returns raw counter values since last reset. Args: counters: List of counter names to read (e.g., ["M1CNT", "M2CNT"]). If empty/None, reads all available counters. Returns: Counter names and their current values |
| bmc_resetA | Reset all BenchMark Counters to zero. Clears all counter values for a fresh measurement. Returns: Confirmation |
| bmc_cache_analysisA | Run a quick cache performance analysis. Configures counters for cache hit/miss ratio, runs the target briefly, then reports the results. Useful for identifying cache bottlenecks. Args: function: Function to analyze (empty = current execution point) run_duration_ms: How long to run in milliseconds (default: 1000) Returns: Cache hit/miss statistics |
| bmc_set_atobA | Enable or disable A-to-B mode on a BMC counter. In A-to-B mode, the counter only counts events between the Alpha and Bravo marker breakpoints. Use set_breakpoint with actions "alpha"/"bravo" to set markers. Args: counter: Counter name (e.g., "M1CNT") enabled: True to enable A-to-B mode, False to disable Returns: Confirmation |
| bmc_profile_chartA | Display a BMC profile chart with counter data mapped to instruction flow. Shows which functions/addresses consumed the most events (cycles, cache misses, etc.). Requires BMC counters to have been recorded during execution. Args: counters: Counter names to include (e.g., ["M1CNT", "M2CNT"]). Empty = all configured counters. Returns: Profile chart showing event distribution across code |
| set_reset_behaviorA | Configure reset behavior for the debugger. Determines how TRACE32 handles soft resets, hard resets, and power cycles. Args: behavior: Reset behavior mode: "restore_go" — halt briefly to restore debug resources, then continue "run_restore" — restore debug resources while CPU runs (may miss breakpoints) "halt" — halt CPU at reset vector after reset Returns: Confirmation of reset behavior setting |
| set_cache_readA | Enable or disable cache-aware memory reads. When ON, the default data access class (D:) shows cached data from the CPU's point of view instead of stale bus-level data. Essential for debugging code that modifies cached memory (e.g., LMU on TC39x). Args: enabled: True to enable cache-aware reads, False to disable Returns: Confirmation |
| set_peripheral_suspendA | Enable or disable automatic peripheral suspend when CPU halts. When ON, peripheral modules (timers, watchdogs, communication) are automatically suspended when the debugger halts the CPU. This prevents watchdog timeouts and timer overflows during debugging. Args: enabled: True to enable peripheral suspend, False to disable Returns: Confirmation |
| suspend_peripheralA | Configure suspend mode for a specific peripheral module. Sets how a peripheral responds when the CPU is halted by the debugger. Args: peripheral: Peripheral register name (e.g., "GPT120_OCS", "STM0_OCS") suspend_mode: "hard" — suspend immediately on CPU halt "soft" — suspend after current operation completes "none" — never suspend Returns: Confirmation |
| set_standby_modeA | Enable or disable standby mode for power cycle detection. When ON, TRACE32 monitors VTREF to detect power cycles and can automatically reconnect and restore debug state. Args: enabled: True to enable standby mode, False to disable Returns: Confirmation |
| get_system_optionsA | Get the current system options and configuration. Shows all active SYStem.Option settings including PERSTOP, DCREAD, reset behavior, and other debug options. Returns: Formatted system options |
| load_symbol_fileA | Load debug symbols from an ELF file. Loads symbol and debug information for source-level debugging. If no path given, uses the configured ELF path from debugforge.toml. Args: elf_path: Path to ELF file. Empty = use configured path. Returns: Confirmation of symbol loading |
| run_cmm_scriptC | Execute a TRACE32 PRACTICE (.cmm) script file. Args: script_path: Path to the .cmm script file timeout: Maximum execution time in seconds (default: 30) Returns: Script execution result |
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
- 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/YangPan2020/debugforge'
If you have feedback or need assistance with the MCP directory API, please join our Discord server