代码深度分析Skill tldr-deep

这是一个代码深层分析技能,用于通过五层分析(包括抽象语法树、调用图、控制流图、数据流图和程序切片)来调试和理解复杂代码函数,适用于软件开发中的调试、代码审查、重构和性能优化。关键词:代码分析,调试,AST,控制流,数据流,程序切片,软件开发。

测试 0 次安装 0 次浏览 更新于 3/14/2026

name: tldr-deep description: 对特定函数进行完整的五层分析。用于调试或深度理解代码。

TLDR 深度分析

对特定函数进行完整的五层分析。用于调试或深度理解代码。

触发条件

  • /tldr-deep <函数名>
  • “详细分析函数 X”
  • “我需要深度理解 Y 如何工作”
  • 调试复杂函数

层次

层次 目的 命令
L1: AST 结构 tldr extract <文件>
L2: 调用图 导航 tldr context <函数> --depth 2
L3: CFG 复杂度 tldr cfg <文件> <函数>
L4: DFG 数据流 tldr dfg <文件> <函数>
L5: 切片 依赖关系 tldr slice <文件> <函数> <行号>

执行

给定函数名,运行所有层次:

# 首先找到文件
tldr search "def <函数名>" .

# 然后运行每个层次
tldr extract <找到的文件>              # L1: 完整文件结构
tldr context <函数名> --project . --depth 2  # L2: 调用图
tldr cfg <找到的文件> <函数名>  # L3: 控制流
tldr dfg <找到的文件> <函数名>  # L4: 数据流
tldr slice <找到的文件> <函数名> <目标行号>  # L5: 切片

输出格式

## 深度分析: {函数名}

### L1: 结构 (AST)
文件: {文件路径}
签名: {签名}
文档字符串: {文档字符串}

### L2: 调用图
调用: {此函数调用的函数列表}
被调用: {调用此函数的函数列表}

### L3: 控制流 (CFG)
块: {N}
圈复杂度: {M}
[如果 M > 10 则标记为热]
分支:
  - if: 行 X
  - for: 行 Y
  - ...

### L4: 数据流 (DFG)
定义的变量:
  - {变量1} @ 行 X
  - {变量2} @ 行 Y
使用的变量:
  - {变量1} @ 行 [A, B, C]
  - {变量2} @ 行 [D, E]

### L5: 程序切片 (影响行 {目标})
切片中的行: {N}
关键依赖:
  - 行 X → 行 Y (数据)
  - 行 A → 行 B (控制)

---
总计: ~{令牌数} 令牌 (相比原始文件节省 95%)

使用场景

  1. 调试 - 需要理解函数的所有路径
  2. 重构 - 需要知道依赖关系
  3. 代码审查 - 分析复杂函数
  4. 性能 - 寻找热点(高圈复杂度)

编程接口

from tldr.api import (
    extract_file,
    get_relevant_context,
    get_cfg_context,
    get_dfg_context,
    get_slice
)

# 为一个函数运行所有层次
file_info = extract_file("src/processor.py")
context = get_relevant_context("src/", "process_data", depth=2)
cfg = get_cfg_context("src/processor.py", "process_data")
dfg = get_dfg_context("src/processor.py", "process_data")
slice_lines = get_slice("src/processor.py", "process_data", target_line=42)