Loading...
Loading...
Compare original and translation side by side
evalvarsstepstacksourceevalvarsstepstacksourcexbalancevarseval "type(data['age'])"--break "file:line:i == 50"evalxbalancevarseval "type(data['age'])"--break "file:line:i == 50"evalagent-debuggernpx -y agent-debuggeragent-debuggernpx -y agent-debuggerundefinedundefined
Multiple `--break` flags supported. Conditions are expressions: `--break "app.py:42:len(items) > 10"`.
支持多个`--break`参数。条件为表达式格式:`--break "app.py:42:len(items) > 10"`。| Language | Extension | Adapter | Requirement |
|---|---|---|---|
| Python | .py | debugpy | |
| JavaScript/TypeScript | .js/.ts | Node Inspector | Node.js |
| Go | .go | Delve | |
| Rust/C/C++ | .rs/.c/.cpp | CodeLLDB | |
| 语言 | 扩展名 | 适配器 | 依赖要求 |
|---|---|---|---|
| Python | .py | debugpy | |
| JavaScript/TypeScript | .js/.ts | Node Inspector | Node.js |
| Go | .go | Delve | |
| Rust/C/C++ | .rs/.c/.cpp | CodeLLDB | 需设置 |
agent-debugger start app.py --break "app.py:25"
agent-debugger eval "type(data['age'])" # <class 'str'> — found it
agent-debugger eval "int(data['age'])" # 35 — fix is safe
agent-debugger closeagent-debugger start app.py --break "app.py:25"
agent-debugger eval "type(data['age'])" # <class 'str'> — 找到问题
agent-debugger eval "int(data['age'])" # 35 — 转换安全
agent-debugger closeagent-debugger start etl.py --break "etl.py:90" # after the transformation
agent-debugger eval "all(isinstance(v, int) for v in result.values())" # False
agent-debugger eval "[k for k,v in result.items() if not isinstance(v, int)]" # ['quantity']
agent-debugger closeagent-debugger start etl.py --break "etl.py:90" # 转换完成后
agent-debugger eval "all(isinstance(v, int) for v in result.values())" # False
agent-debugger eval "[k for k,v in result.items() if not isinstance(v, int)]" # ['quantity']
agent-debugger closeagent-debugger start app.py --break "app.py:45:i == 500" # midpoint
agent-debugger eval "is_valid(result)" # True → bug is after 500
agent-debugger close
agent-debugger start app.py --break "app.py:45:i == 750" # narrow
agent-debugger eval "is_valid(result)" # False → bug is between 500-750
agent-debugger close
agent-debugger start app.py --break "app.py:45:i == 625" # narrow againagent-debugger start app.py --break "app.py:45:i == 500" # 中间位置
agent-debugger eval "is_valid(result)" # True → 问题出在500次迭代之后
agent-debugger close
agent-debugger start app.py --break "app.py:45:i == 750" # 缩小范围
agent-debugger eval "is_valid(result)" # False → 问题出在500-750次迭代之间
agent-debugger close
agent-debugger start app.py --break "app.py:45:i == 625" # 继续缩小范围undefinedundefined
If it hits, you've caught the crime in progress. If it doesn't hit, your theory was wrong — move on.
如果触发断点,说明你当场捕获了问题。如果未触发,说明你的假设错误——换个方向继续排查。agent-debugger start tree.py --break "tree.py:22"
agent-debugger stack # see the recursion depth
agent-debugger eval "current_depth" # 3
agent-debugger eval "max_depth" # 3 — off-by-one, should be <, not <=
agent-debugger closeagent-debugger start tree.py --break "tree.py:22"
agent-debugger stack # 查看递归深度
agent-debugger eval "current_depth" # 3
agent-debugger eval "max_depth" # 3 — 差一错误,应该用<而非<=
agent-debugger closeagent-debugger start app.py --break "handler.py:55"
agent-debugger eval "data['age']" # '35' — string, wrong. But handler didn't create this.
agent-debugger close # pivot to the source
agent-debugger start app.py --break "loader.py:22"
agent-debugger eval "raw_row" # CSV parser returns strings. Root cause.
agent-debugger closeagent-debugger start app.py --break "handler.py:55"
agent-debugger eval "data['age']" # '35' — 字符串类型,不符合要求。但handler并未生成该数据。
agent-debugger close # 转向数据源排查
agent-debugger start app.py --break "loader.py:22"
agent-debugger eval "raw_row" # CSV解析器返回字符串类型。找到根源。
agent-debugger closeagent-debugger start app.py \
--break "auth.py:30" \
--break "validate.py:55" \
--break "handler.py:80"agent-debugger start app.py \
--break "auth.py:30" \
--break "validate.py:55" \
--break "handler.py:80"undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedstepvarsevalagent-debugger closestepvarsevalagent-debugger closeclosedebugpypip install debugpyevalclosedebugpypip install debugpyeval