Skip to main content
Glama

debug_explain_fault

Decode a QEMU interrupt log to explain a crash or triple fault, filter timer and software interrupts, pinpoint the root cause, and symbolize addresses when an ELF is provided.

Instructions

Explain a crash / triple fault from a QEMU interrupt log.

Produce the log by running QEMU with -d int,cpu_reset -D <log_path> (add -no-reboot so a triple fault stops the VM instead of looping). Decodes the exception chain (vector names, page-fault and selector error codes, CR2), filters out timer IRQs and software interrupts, points at the root cause, and symbolizes addresses when elf is given. x86 only.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "log_path": "<log_path>"
    },
    "name": "debug_explain_fault"
  }
}

Input Schema

NameRequiredDescriptionDefault
elfNo
log_pathYes
max_eventsNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full disclosure burden. It does well on scope and filtering behavior (drops timer IRQs and software interrupts, symbolizes only when elf is given, x86-only), but never states that it is a read-only analysis of an existing file, how it behaves on a malformed or truncated log, or what happens when max_events truncates the trace.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the one-line purpose, then the log-production recipe as a code snippet, then a compact capability list. Four short lines, no filler, and the most actionable prerequisite is placed early where an agent will see it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is correctly omitted, and the description covers the input-generation prerequisite and architecture limitation that an agent could not infer from the schema. The remaining gap is max_events and any note about log-size or truncation behavior, which matters for a tool that parses potentially large traces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It effectively explains log_path (how to generate it) and elf (enables symbolization of addresses), which is real added meaning over bare field names, but the third parameter max_events is never mentioned at all, leaving its purpose and default behavior undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource — 'Explain a crash / triple fault from a QEMU interrupt log' — and then enumerates the concrete sub-tasks (decode exception chain, filter timer IRQs and software interrupts, point at root cause, symbolize addresses). The QEMU interrupt-log framing makes it unmistakable against the live-debugger siblings (debug_break, debug_step, debug_registers), none of which analyze a log file.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a precise prerequisite recipe — run QEMU with `-d int,cpu_reset -D <log_path>` and add `-no-reboot` so a triple fault stops instead of looping — which is the key thing an agent needs before it can call this at all. What's missing is explicit routing guidance (when to reach for this versus a live debug session) and the 'x86 only' limitation is buried as a trailing clause rather than front-loaded as an exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.