NationalSecurityAgency/ghidra · error · RuntimeError
Usage: ghidra trace put-all
Error message
Usage: ghidra trace put-all
What it means
Raised by ghidra_trace_put_all when any argument is passed. put-all aggregates registers, $pc/$sp memory, processes, environment, regions, modules, threads, frames, etc. for the current selection into the trace; it takes no arguments (commands.py:1953).
Source
Thrown at Ghidra/Debug/Debugger-agent-lldb/src/main/py/src/ghidralldb/commands.py:1953
raise RuntimeError("Usage: ghidra trace put-frames")
trace, tx = STATE.require_tx()
with trace.client.batch() as b:
put_frames()
@convert_errors
def ghidra_trace_put_all(debugger: lldb.SBDebugger, command: str,
result: lldb.SBCommandReturnObject,
internal_dict: Dict[str, Any]) -> None:
"""Put everything currently selected into the Ghidra trace.
Usage: ghidra trace put-all
"""
args = shlex.split(command)
if len(args) != 0:
raise RuntimeError("Usage: ghidra trace put-all")
trace, tx = STATE.require_tx()
with trace.client.batch() as b:
ghidra_trace_putreg(debugger, DEFAULT_REGISTER_BANK,
result, internal_dict)
ghidra_trace_putmem(debugger, "$pc 1", result, internal_dict)
ghidra_trace_putmem(debugger, "$sp 1", result, internal_dict)
put_processes()
put_environment()
put_regions()
put_modules()
put_threads()
put_frames()
put_breakpoints()
put_watchpoints()
put_available()
View on GitHub (pinned to d5f144c24d)
Solutions
- Invoke bare: `ghidra trace put-all`.
- Select the desired process/thread in LLDB before running; put-all has no selector.
Example fix
// before ghidra trace put-all everything // after ghidra trace put-all
Defensive patterns
Strategy: validation
Validate before calling
assert len(command.split()) == 0, "put-all takes no arguments"
Prevention
- put-all snapshots the current selection — no scope/filter arg.
- Select the desired process/thread before running.
When it happens
Trigger: Appending a scope token like `ghidra trace put-all current` or `put-all processes`, or trailing text from a script.
Common situations: Users expect put-all to take a filter or target process. It always operates on the currently selected process/thread and pushes everything.
Related errors
- Usage: ghidra trace disassemble ADDRESS
- Usage: ghidra trace put-processes
- Usage: ghidra trace put-available
- Usage: ghidra trace put-breakpoints
- Usage: ghidra trace put-watchpoints
AI-assisted analysis of NationalSecurityAgency/ghidra@d5f144c24d (2026-08-14).
Data as JSON: /api/errors/38edb0db38465558.
Report an issue: GitHub.