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%)
使用场景
- 调试 - 需要理解函数的所有路径
- 重构 - 需要知道依赖关系
- 代码审查 - 分析复杂函数
- 性能 - 寻找热点(高圈复杂度)
编程接口
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)