XCodeMap 立即入手
Execution Data Infrastructure

让 AI 看见程序如何运行,让人类随时回放

自动采集一次真实执行的调用、参数、堆栈与数据流。
AI 获得事实上下文,人类获得可视化证据。

Local-first · Java · IntelliJ IDEA

IntelliJ IDEA · XCodeMap 回放
RuntimeDataController.java 已执行 8 行
33@PostMapping("/observeChildrenCalls")
34public Result<Map<String, Object>> observeChildrenCalls(…)
35 try {
36 String processId = getActiveProcessIdString();
37 if (processId == null) {
39 result.setResultFailed("400", NO_ACTIVE_P…
41 }
42 String callId = (String) request.get("callId");
43 if (callId == null || callId.trim().isEmpty()) {
XCodeMap · 请求与线程入口 退出回放
[122 天前录制] XCodeMapConsoleApp · 3.8 MB
13:27:39POST /runtimedata/observeChildrenCalls125 ms
http-nio-80-exec-1#111
13:27:35POST /maps/sequence/getDataRequests306 ms
http-nio-80-exec-5#115
13:27:35POST /maps/sequence/getProcessDataList336 ms
13:27:35POST /maps/sequence/pollChatMessage302 ms
变量 · get(key)
  • this={LinkedHashMap@11045}
  • key={String@11046}"callId"
  • return={String@11047}"c_313839"
c_11732 · thread = TID_111 · cost = 1 ms
数据标记
Debug视图鱼骨图序列图 搜索循环(1/1)SQL(0)异常(0) c_11732:调用 get()
POST /…/observeChildrenCalls doFilter doFilter injectTestUser setUserToSecurityContext convertToOAuth2AuthenticationToken doFilterInternal doFilter createEmptyContext observeChildrenCalls getGraphParserManager getSequenceAPI get
How It Works · 工作原理

一次真实运行,四步变成可被理解的结构

在 IDEA 的启动选项中选择 XCodeMap,即可一键启动并自动采集。它不做静态分析,也不靠调用推断,而是把这一次执行原原本本地记录下来, 再重建成人和 AI 都能直接消费的结构化事实。

Step 01 · Launch

一键启动

直接在 IDEA 启动选项中选择 XCodeMap,无需手写命令,不改业务代码与构建流程。

IDEAone-click
Step 02 · Record

采集

字节码增强按需织入,捕获调用关系、出入参、异常、SQL 与耗时,并打上时间戳与线程标识。

bytecodeparamsSQL
Step 03 · Reconstruct

重建

把散落的事件重组为时间线、调用树、鱼骨图与数据流,并映射回真实执行过的源码行号。

timelinecall treedata flow
Step 04 · Consume

消费

人在 IDEA 里可视化回放;AI 使用 xcodemap-observe Skill,通过 HTTP API 获取同一份事实上下文,不再靠猜。

IntelliJ IDEAxcodemap-observeHTTP API
XCodeMapConsoleApp⌄
选择此项,一键启动
Run 'XCodeMapConsoleApp' with Coverage
Profile 'XCodeMapConsoleApp' with 'IntelliJ Profiler'
Debug 'XCodeMapConsoleApp' with XCodeMap
Rebel Run 'XCodeMapConsoleApp'
Threads & VariablesConsoleBeansHealth
2026-07-28 10:32:40.401 [XCodeMap] 官网: https://xcodemap.tech
2026-07-28 10:32:40.470 [XCodeMap] Install Agent, version: 1.26.3
2026-07-28 10:32:40.474 [XCodeMap] ReTransform class num: 0
2026-07-28 10:32:40.474 [XCodeMap] Install Agent finished, cost 5 ms
2026-07-28 10:32:40.570 [XCodeMap] 启动完成, version: 1.26.3

关于这份数据,你需要知道的

  • Local-first:执行数据默认落在本机,不上传、不出机器,企业代码与业务数据不外流。
  • 按需采集:可按包名、类名与方法粒度圈定范围,只录你关心的部分,控制开销。
  • 事实而非推断:记录的是「这一次确实这样跑的」,不是「可能会怎么跑」。
  • 面向 AI 的输出:xcodemap-observe Skill 通过 HTTP API 获取执行数据,让 AI 的回答建立在运行证据上。
Use Cases · 适用场景

当「读代码」和「打断点」不够用的时候

这些时刻的共同点是:信息本身不缺,缺的是把它们拼成一条完整因果链的能力。

Case 01

接手陌生项目

不必先啃完整套代码。跑通一次主流程,执行路径、分层结构与关键依赖会自己浮现出来。

// 这个请求到底经过了哪些类?
Case 02

Bug 无法稳定复现

提前开启录制。只要复现一次,现场就被完整保留,之后可以反复慢放,不用守着断点碰运气。

// 那一次到底传了什么参数?
Case 03

AI 编程助手在猜

AI 只能看到源码,看不到运行时。把真实执行喂给它之后,它的结论从推测变成基于证据的判断。

// 别猜了,这是它实际跑的路径
Case 04

循环 / 递归 / 异步并发

这些结构在源码里最难读,在时间轴上却一目了然:走了几轮、谁先谁后、哪个线程干了什么。

// 这个循环第几轮出的问题?
Case 05

逻辑没问题,结果不对

问题往往不在算法,而在输入与上下文。回放一次,比对每一步的真实入参与返回值即可定位。

// 值是在哪一步被改掉的?
Case 06

重构验证与行为对比

改造前后各录一次,逐段比对执行路径、参数、SQL 与耗时,确认重构是否改变实际行为。

// 改完之后,行为真的一致吗?
Get Started

当你真正看见代码的行为,
一切都会简单下来

先花三分钟看一段真实回放,再决定要不要装到自己的项目上。

Local-first · Java · IntelliJ IDEA