NationalSecurityAgency/ghidra · error · RuntimeError
Usage: ghidra trace put-frames
Error message
Usage: ghidra trace put-frames
What it means
Raised by ghidra_trace_put_frames when any argument is supplied. put-frames writes the current thread's stack frames to the trace and is parameterless (commands.py:1935). Frame selection is driven by LLDB's selected thread/frame, not command args.
Source
Thrown at Ghidra/Debug/Debugger-agent-lldb/src/main/py/src/ghidralldb/commands.py:1935
fobj.insert()
robj = trace.create_object(fpath+".Registers")
robj.insert()
trace.proxy_object_path(STACK_PATTERN.format(
procnum=proc.GetProcessID(), tnum=t.GetThreadID())).retain_values(keys)
@convert_errors
def ghidra_trace_put_frames(debugger: lldb.SBDebugger, command: str,
result: lldb.SBCommandReturnObject,
internal_dict: Dict[str, Any]) -> None:
"""Put the current thread's frames into the Ghidra trace.
Usage: ghidra trace put-frames
"""
args = shlex.split(command)
if len(args) != 0:
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")View on GitHub (pinned to d5f144c24d)
Solutions
- Run bare: `ghidra trace put-frames`.
- To change which frames appear, select the thread (`thread select`) and frame (`frame select`) in LLDB first.
Example fix
// before ghidra trace put-frames 0 // after ghidra trace put-frames
Defensive patterns
Strategy: validation
Validate before calling
assert len(command.split()) == 0, "put-frames takes no arguments"
Prevention
- put-frames reflects the selected thread's stack — no frame-level arg.
- Select thread/frame in LLDB first.
When it happens
Trigger: Appending a frame level/index like `ghidra trace put-frames 0`, or trailing tokens.
Common situations: Users try to publish a specific frame by level; the command always reflects the currently selected thread's full stack.
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/e382ba23922a1b8b.
Report an issue: GitHub.