trace-function

trace-function is a command for Claude Code from SetsunaYukiOvO/x64dbg-mcp. It costs 10 tokens per session (764 once invoked), scanned A, original, MIT.

A debugger-based function tracing command for Windows programs. It follows a function's instructions, calls, branches, memory references, and return points through x64dbg or x32dbg.

In plain words
What is it for?
Use it to trace a function by name or memory address, inspect its machine instructions, identify its module, and examine callers and called functions.
Why use it?
It helps explain what an unfamiliar compiled function does and who calls it, even when the source code or clear symbols are unavailable.

Command for Claude Code

Written for Claude Code: argument-hint in frontmatter. Also seen: positional $N argument.

Part of the skills plugin — 1 skill, 11 commands shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/setsunayukiovo/x64dbg-mcp/trace-function
Clone the repo
git clone --depth 1 https://github.com/SetsunaYukiOvO/x64dbg-mcp

Made for: Claude Code.

Or install skills, the plugin that ships this one along with the rest of its 1 skill, 11 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for trace-function

README.md
[![agentmods](https://agentmods.dev/badge/commands/setsunayukiovo/x64dbg-mcp/trace-function.svg)](https://agentmods.dev/commands/setsunayukiovo/x64dbg-mcp/trace-function)
Your own site
<a href="https://agentmods.dev/commands/setsunayukiovo/x64dbg-mcp/trace-function"><img src="https://agentmods.dev/badge/commands/setsunayukiovo/x64dbg-mcp/trace-function.svg" alt="Measured on agentmods" height="20"></a>
Per session 10 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 764 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00010 $0.00764
Opus 5 $0.00005 $0.00382
Sonnet 5 $0.00002 $0.00153
Haiku 4.5 $0.00001 $0.00076

Measured 6d ago against content hash aabe3d105c6e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

trace-function scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/commands/trace-function.md · 75 lines

How it starts

The opening of the file, as written. The whole thing — 75 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are a function analysis specialist connected to x64dbg/x32dbg via MCP. Trace and understand the behavior of: $1

If "$1" is empty, ask the user to provide a function name or address.

Phase 1: Locate the Function

  1. If "$1" looks like an address (starts with 0x or is hex), use it directly.
  2. If it's a symbol name (e.g., kernel32.CreateFileW or sub_140001000):
    • Call symbol_resolve to get the address.
    • If not found, call symbol_search with the name as pattern.
  3. Call disassembly_function at the resolved address for full disassembly.
  4. Call symbol_from_address for the fully qualified name.
  5. Call memory_get_info to identify the owning module.
  6. Call function_get at the address to get function start/end boundaries.
  7. Call xref_get at the function address to see who calls it.

Phase 2: Structural Analysis

  1. From the disassembly, identify:
    • Function prologue and calling convention (x64 fastcall: RCX, RDX, R8, R9; x86: stack-based)
    • All CALL instructions - resolve each with symbol_from_address
    • Conditional branches and loops
    • Return points (all RET instructions)
    • Data references (memory accesses, strings, constants)

Phase 3: Set Up Tracing Breakpoints

  1. Call breakpoint_set at function entry.
  2. Call breakpoint_set_log at entry with format:
    • x64: "ENTER $1 | RCX={RCX} RDX={RDX} R8={R8} R9={R9}"
    • x86: "ENTER $1 | [ESP+4]={[ESP+4]:x} [ESP+8]={[ESP+8]:x}"
  3. For each RET instruction, set an architecture-specific logging breakpoint:
    • x64: "EXIT $1 | RAX={RAX}"
    • x86: "EXIT $1 | EAX={EAX}"
  4. For key CALL sites, set additional logging breakpoints.

Phase 4: Dynamic Capture

  1. Use context_get_snapshot at entry to capture full state.
  2. Step through with debug_step_over / debug_step_into for detailed tracing.
  3. Use context_get_snapshot at exit and context_compare_snapshots to see what changed.

Phase 5: Report

=== Function Trace Report ===

Function: [name/symbol]
Address:  0x... - 0x... ([size] bytes)
Module:   [owning module]
Convention: [fastcall/stdcall/cdecl]

Parameters (estimated):
  - Param 1 (x64 RCX / x86 [ESP+4]): [type and description]
  - Param 2 (x64 RDX / x86 [ESP+8]): [type and description]

Internal Calls:
  1. 0x... -> [symbol] (at offset +0x...)
  2. 0x... -> [symbol] (at offset +0x...)

Control Flow:
  - [branches, loops, conditions]

Return Value: [type guess based on usage]

Breakpoints Set:
  - Entry: 0x... (logging parameters)
  - Exit:  0x... (logging return value)

Read the full file on GitHub · 75 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 75 lines · 10 tokens per session scan A aabe3d105c6e

Subscribe to this mod's changes

trace-function is a command published in the GitHub repository SetsunaYukiOvO/x64dbg-mcp (455 stars, last pushed 16d ago), licensed MIT. It adds 10 tokens to every session and 764 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.