×
¥
查看详情
🔥 会员专享 文生文 开发

编程代码调试动画生成器

👁️ 215 次查看
📅 Oct 31, 2025
💡 核心价值: 本提示词专为编程教育和代码调试场景设计,通过生成逐步动画可视化代码执行流程和错误定位过程,帮助用户直观理解程序运行机制。它能自动解析代码结构、模拟变量状态变化、高亮错误位置,并生成适合教学或自学的动态演示内容。亮点包括支持多种编程语言适配、错误类型智能识别、可自定义调试深度,使复杂调试任务转化为易于理解的视觉叙事,提升学习效率和问题解决能力。

🎯 可自定义参数(3个)

代码片段
需要调试的编程代码片段
错误类型
代码中存在的错误类型
调试深度
调试过程的详细程度

🎨 效果示例

代码结构分析摘要

  • 函数与全局结构
    • 函数:debugUserNameLength(users, id)
      • 步骤:日志 → 查找 → 日志 → 访问 name.length → 日志 → 返回
    • 全局数据:常量 users(两个用户对象)
    • 运行入口:try/catch 中调用 debugUserNameLength(users, 2)
  • 关键变量
    • users:数组 [{ id:1, name:"Alice" }, { id:3, name:"Charlie" }]
    • id:传入值 2(在 users 中不存在)
    • user:由 users.find(...) 返回,预期为对象,但在此案例为 undefined
    • len:尝试读取 user.name.length 时生成,实际未成功赋值(异常触发)
  • 控制流
    • find 遍历逻辑:按顺序检查 id==2,均不匹配 → 返回 undefined
    • 对 undefined 访问属性 → TypeError
    • 异常在函数内抛出,经调用栈向外传播至 try/catch,被 catch 捕获并打印错误信息

错误类型及位置说明

  • 错误类型:运行时错误(TypeError)
  • 触发位置:函数 debugUserNameLength 内部
    • 具体语句:const len = user.name.length;
    • 语义原因:当 find 未找到元素时,user 为 undefined,访问 undefined.name 导致 TypeError(Cannot read properties of undefined)
  • 触发条件:传入 id=2 时,users 中不存在 id 为 2 的用户 → user === undefined
  • 异常传播路径
    • debugUserNameLength → 抛出 TypeError → 返回至调用处 → try/catch 捕获 → console.error 输出错误信息

分步骤动画脚本描述

  • 场景布局
    • 左侧:代码面板(逐行高亮)
    • 右侧上方:变量面板(users、id、user、len)
    • 右侧中部:调用栈面板(global → debugUserNameLength)
    • 右侧下方:控制台输出面板(console)
  • 关键帧时间线(基础调试版,约 8 步)
    1. t=0.0s 场景初始化
      • 高亮:全局 users 常量定义
      • 变量面板:users 显示两个对象
      • 调用栈:global
    2. t=0.5s 进入 try 块,调用函数
      • 高亮:debugUserNameLength(users, 2)
      • 调用栈:推入 debugUserNameLength
      • 变量面板:id=2
    3. t=0.8s 函数首行日志
      • 高亮:console.log("开始查找,目标id:", id)
      • 控制台输出:开始查找,目标id: 2
    4. t=1.2s 执行 find 遍历
      • 高亮:const user = users.find(u => u.id === id)
      • 动画:指针依次指向 Alice(id=1) → 条件不成立;指向 Charlie(id=3) → 条件不成立
      • 变量面板:user=undefined
    5. t=1.8s 打印查找结果
      • 高亮:console.log("查找结果:", user)
      • 控制台输出:查找结果: undefined
    6. t=2.2s 进入错误触发行
      • 高亮与警示标记:const len = user.name.length
      • 动画:在 user 上显示“undefined”标签,属性访问 name 出现红色叉号
      • 事件:抛出 TypeError(气泡提示:Cannot read properties of undefined (reading 'name'))
      • 调用栈:debugUserNameLength 帧标红,开始弹栈
    7. t=2.6s 异常被外层捕获
      • 场景跳回 try/catch
      • 高亮:catch (e) { console.error("捕获到错误:", e.message); }
      • 控制台输出:捕获到错误: Cannot read properties of undefined (reading 'name')
      • 调用栈:仅剩 global
    8. t=3.0s 总结帧
      • 变量面板:len 未赋值(空/未定义),user=undefined
      • 标注:错误点与改进建议入口

变量状态变化时间线

步骤 位置/行意 users id user len 控制台输出 调用栈 异常
0 全局初始化 [{1,"Alice"},{3,"Charlie"}] - - - - global -
1 调用函数 同上 2 - - - global→debugUserNameLength -
2 日志1 同上 2 - - 开始查找,目标id: 2 debugUserNameLength -
3 find 执行 同上 2 undefined - - debugUserNameLength -
4 日志2 同上 2 undefined - 查找结果: undefined debugUserNameLength -
5 访问 user.name.length 同上 2 undefined 未赋值 - debugUserNameLength 抛出 TypeError
6 catch 捕获 同上 2 undefined 未赋值 捕获到错误: Cannot read properties of undefined (reading 'name') global 已捕获

调试建议和改进方案

  • 原因根治:对 find 结果进行空值保护,避免对 undefined 访问属性
  • 方案A(显式报错,语义清晰)
    • 适用:未找到用户应视为异常的业务场景
    • 示例:
      • const user = users.find(u => u.id === id);
      • if (!user) throw new Error(User not found: id=${id});
      • const len = user.name.length; return len;
  • 方案B(容错返回默认值)
    • 适用:未找到用户时希望继续流程并返回安全默认值
    • 示例:
      • const len = users.find(u => u.id === id)?.name?.length ?? 0;
      • console.log("用户名长度:", len); return len;
  • 方案C(提前校验输入)
    • 确认 users 为数组、id 类型正确;在函数入口处进行类型检查与日志提示
  • 方案D(改进日志)
    • 在查找失败时输出有用提示:console.warn(未找到用户,id=${id}) 或记录到监控系统
  • 方案E(测试用例)
    • 覆盖 id 存在与不存在两类:id=1(长度=5),id=2(触发未找到逻辑)
  • 注意事项
    • 避免直接使用 try/catch 吞掉错误不处理(应至少记录并给出可理解信息)
    • 在使用可选链与默认值时,明确业务含义,避免悄然改变错误处理策略(默认值和抛错二选一需按需求决定)

代码结构分析摘要

  • 文件结构
    • 类:CounterDemo
    • 方法:main(String[] args)
  • 变量
    • 局部变量:sum(int, 初始值0),i(int,for循环迭代变量),value(int,计划赋值为42)
  • 控制流
    • 顺序执行:初始化 sum → 进入 for 循环 → 累加并打印每次迭代 → 赋值 value → 打印最终结果
    • 循环:for (int i = 0; i < 5; i++)
      • 迭代范围:i = 0,1,2,3,4 共5次
      • 每次迭代执行:sum += i; → 打印当前 i 和 sum
  • I/O
    • System.out.println 在循环中输出 5 行迭代信息
    • 循环后输出最终汇总信息(在当前代码中因语法错误无法到达)

错误类型及位置说明

  • 错误总览
    • 语法错误1:缺少分号
    • 语法错误2:大括号不匹配(缺少方法与类的结束大括号)
  • 具体定位(以当前片段行号计)
    • 第9行:int value = 42 之后缺少分号
      • 典型编译器报错:error: ';' expected
      • 影响:编译在此处即失败,后续语句与结构无法被正确解析
    • 文件末尾:缺少两个右大括号
      • 缺少 main 方法结束的 }(应在第10行打印语句之后)
      • 缺少类 CounterDemo 结束的 }(应在 main 结束之后)
      • 典型编译器报错:error: reached end of file while parsing
      • 影响:语法树无法闭合,编译失败
  • 备注
    • “括号不匹配”实际为大括号 {} 不匹配(圆括号 () 在此片段中是匹配的)

分步骤动画脚本描述

说明:本动画分“编译阶段错误定位”和“修复后执行模拟”两部分。每个步骤给出关键帧与视觉元素,便于课堂讲解或调试演示。

  • 场景0(0.5s):源码结构扫视

    • 画面:高亮类名 CounterDemo、方法 main、for 循环的三层缩进结构
    • 叠加层:在行首显示结构标尺:Class → Method → For-block
  • 场景1(1.0s):第一次编译与错误高亮(缺分号)

    • 动作:点击“编译”,状态条从绿色转为红色
    • 高亮:第9行“int value = 42”
    • 提示气泡:"; 期望出现的分号缺失"
    • 旁白注释:编译器在此处停止解析,无法继续
  • 场景2(0.8s):修复分号

    • 动作:在第9行尾部自动补上“;”
    • 动画:分号插入,错误提示消失,状态条转为橙色(进行下一次编译)
  • 场景3(1.2s):第二次编译与错误高亮(缺右大括号)

    • 动作:再次“编译”,状态条红色
    • 画面:在文件末尾显示一个“大括号配对仪表”
      • 仪表:显示未闭合的两个块:main(...) { 未闭合、CounterDemo { 未闭合
    • 提示气泡:reached end of file while parsing(到达文件末尾仍未闭合)
  • 场景4(1.0s):补齐右大括号

    • 动作:在第10行打印语句后插入“}”关闭 main
    • 再在其后插入“}”关闭类
    • 动画:配对仪表转绿,结构树完整闭合
  • 场景5(2.5s):修复后执行模拟(逐行)

    • 帧A(启动):sum=0 显示在右侧变量面板
    • 帧B(for 迭代 i=0 至 i=4)
      • 每次迭代动画:
        • 指针进入循环体,i 值闪烁更新
        • sum += i 的等式展开(如“sum: 0 + 0 → 0”,“0 + 1 → 1”)
        • 随即显示打印行:“i=..., sum=...”
    • 帧C(循环结束):赋值 value=42,高亮右侧变量面板 value=42
    • 帧D(最终打印):显示“完成,sum=10, value=42”
  • 场景6(0.8s):总结视图

    • 画面:变量时间线小结 + 绿色“编译通过与执行完成”标记

变量状态变化时间线

  • 初始
    • sum=0;value 未定义;i 尚未进入循环
  • 循环迭代(修复后模拟执行)
    • i=0:sum=0+0=0 → 打印 "i=0, sum=0"
    • i=1:sum=0+1=1 → 打印 "i=1, sum=1"
    • i=2:sum=1+2=3 → 打印 "i=2, sum=3"
    • i=3:sum=3+3=6 → 打印 "i=3, sum=6"
    • i=4:sum=6+4=10 → 打印 "i=4, sum=10"
  • 循环后(修复后)
    • value=42
    • 最终打印:"完成,sum=10, value=42"

可用于动画的紧凑表格(修复后模拟):

  • 迭代0:i=0, sum(前)=0 → sum(后)=0
  • 迭代1:i=1, sum(前)=0 → sum(后)=1
  • 迭代2:i=2, sum(前)=1 → sum(后)=3
  • 迭代3:i=3, sum(前)=3 → sum(后)=6
  • 迭代4:i=4, sum(前)=6 → sum(后)=10
  • 结束:value=42;最终输出 sum=10, value=42

调试建议和改进方案

  • 立即修复
    • 在第9行末尾添加分号:int value = 42;
    • 在第10行打印语句之后添加“}”结束 main 方法
    • 在 main 方法结束后添加“}”结束类 CounterDemo
  • 参考的修复后完整代码
    • public class CounterDemo { public static void main(String[] args) { int sum = 0; for (int i = 0; i < 5; i++) { sum += i; System.out.println("i=" + i + ", sum=" + sum); } int value = 42; System.out.println("完成,sum=" + sum + ", value=" + value); } }
  • 防错策略(用于教学动画结尾提示)
    • 使用 IDE 的语法高亮与“括号配对”功能(常见快捷:跳转到匹配的括号)
    • 启用代码格式化(如 Ctrl/Cmd+Shift+F),保持缩进与块结构清晰
    • 小步编译:每次较小改动后立即编译,快速定位新出现的语法问题
    • 在循环与累加操作处添加简短注释,帮助初学者追踪状态变化
    • 若仍遇到“文件末尾未闭合”类错误,优先检查最近的块开始符号“{”的配对数量

本方案可直接用于录制或生成教学动画:先演示两次编译的错误定位与修复,再展示修复后的逐步执行轨迹与变量面板的动态更新。

示例详情

📖 如何使用

30秒出活:复制 → 粘贴 → 搞定
与其花几十分钟和AI聊天、试错,不如直接复制这些经过千人验证的模板,修改几个 {{变量}} 就能立刻获得专业级输出。省下来的时间,足够你轻松享受两杯咖啡!
加载中...
💬 不会填参数?让 AI 反过来问你
不确定变量该填什么?一键转为对话模式,AI 会像资深顾问一样逐步引导你,问几个问题就能自动生成完美匹配你需求的定制结果。零门槛,开口就行。
转为对话模式
🚀 告别复制粘贴,Chat 里直接调用
无需切换,输入 / 唤醒 8000+ 专家级提示词。 插件将全站提示词库深度集成于 Chat 输入框。基于当前对话语境,系统智能推荐最契合的 Prompt 并自动完成参数化,让海量资源触手可及,从此彻底告别"手动搬运"。
即将推出
🔌 接口一调,提示词自己会进化
手动跑一次还行,跑一百次呢?通过 API 接口动态注入变量,接入批量评价引擎,让程序自动迭代出更高质量的提示词方案。Prompt 会自己进化,你只管收结果。
发布 API
🤖 一键变成你的专属 Agent 应用
不想每次都配参数?把这条提示词直接发布成独立 Agent,内嵌图片生成、参数优化等工具,分享链接就能用。给团队或客户一个"开箱即用"的完整方案。
创建 Agent

✅ 特性总结

一步生成代码执行动画,直观呈现每行逻辑与分支跳转,快速看懂程序运行轨迹。
自动标注错误位置与触发时机,配合原因解释与修复建议,减少反复试错时间。
多语言适配轻松调用,常见语法与范式均可识别,课堂与项目调试一套方案搞定。
可自定义调试深度与镜头节奏,按需展示循环、递归与变量变化,避免信息过载。
自动生成变量状态时间线,关键帧突出值变化与条件判定,便于定位逻辑断点。
教学场景一键形成讲解脚本与演示片段,提升课堂互动与学员理解效率。
代码评审与复盘更直观,将复杂函数拆解为可视化步骤,便于团队沟通与共识。
支持场景化模板配置,快速套用算法、数据结构或业务流程示例,复用性高。
一键输出图文并茂的调试方案,结构清晰,直接用于分享、教学或项目汇报。

🎯 解决的问题

把“看不见”的代码运行过程变成一目了然的动态演示,帮助不同角色在真实工作场景中高效解决问题:

  • 教学场景:教师快速制作算法与调试动画,提高课堂理解度与互动性,缩短备课与讲解时间。
  • 自学与入门:新手直观看到变量如何变化、分支如何选择、错误在哪发生,自主定位问题更省心。
  • 团队调试:以统一的可视化方案记录问题复现与修复路径,减少沟通成本,缩短排错时长。
  • 内容与文档:为课程、培训、知识库生成可分享的动态演示,增强专业形象与传播效果。
  • 业务效率:支持多种语言与不同代码规模,按需设置调试深度,让复杂问题被拆解为清晰的视觉叙事,提升交付质量与学习效率。

🕒 版本历史

当前版本
v2.1 2024-01-15
优化输出结构,增强情节连贯性
  • ✨ 新增章节节奏控制参数
  • 🔧 优化人物关系描述逻辑
  • 📝 改进主题深化引导语
  • 🎯 增强情节转折点设计
v2.0 2023-12-20
重构提示词架构,提升生成质量
  • 🚀 全新的提示词结构设计
  • 📊 增加输出格式化选项
  • 💡 优化角色塑造引导
v1.5 2023-11-10
修复已知问题,提升稳定性
  • 🐛 修复长文本处理bug
  • ⚡ 提升响应速度
v1.0 2023-10-01
首次发布
  • 🎉 初始版本上线
COMING SOON
版本历史追踪,即将启航
记录每一次提示词的进化与升级,敬请期待。

💬 用户评价

4.8
⭐⭐⭐⭐⭐
基于 28 条评价
5星
85%
4星
12%
3星
3%
👤
电商运营 - 张先生
⭐⭐⭐⭐⭐ 2025-01-15
双十一用这个提示词生成了20多张海报,效果非常好!点击率提升了35%,节省了大量设计时间。参数调整很灵活,能快速适配不同节日。
效果好 节省时间
👤
品牌设计师 - 李女士
⭐⭐⭐⭐⭐ 2025-01-10
作为设计师,这个提示词帮我快速生成创意方向,大大提升了工作效率。生成的海报氛围感很强,稍作调整就能直接使用。
创意好 专业
COMING SOON
用户评价与反馈系统,即将上线
倾听真实反馈,在这里留下您的使用心得,敬请期待。
加载中...