Green Hills中文网站 > 热门推荐 > Green Hills MULTI调试快照怎么保存 Green Hills MULTI快照能保留哪些调试信息
教程中心分类
Green Hills MULTI调试快照怎么保存 Green Hills MULTI快照能保留哪些调试信息
发布时间:2026/11/11 10:40:01

  嵌入式程序停在故障位置后,分析可能还要持续一段时间,而目标板往往需要交给其他测试使用。MULTI的调试快照可以把调试会话保存到主机文件,供之后脱离目标连接查看,也便于其他工程师接着分析。快照能提供多少线索,取决于保存时取得的数据和所选内容。不同MULTI版本的保存入口、连接支持及授权条件有差别,操作前应核对当前环境。

  一、Green Hills MULTI调试快照怎么保存

 

  保存前应保留故障现场,避免复位、重新下载程序或继续运行改变状态。以下以MULTI 8的调试快照功能为范围,具体选项应与安装版本保持一致。

 

  1、确认版本和采集条件

 

  MULTI 8将旧的追踪会话保存方式调整为调试快照,快照的保存和加载需要相应授权。遇到入口不可用时,应先核对功能支持,避免反复修改目标连接。

 

  ①打开【Help】→【Manuals】,在【MULTI:Debugging】中查找【Debug Snapshots】,核对当前连接方式的使用条件。

 

  ②检查当前【目标连接】、程序映像和故障停止位置,记录处理器、任务或核心信息。

 

  ③保留本次构建使用的【ELF文件】及对应源码,记录构建配置和版本标识。

 

  ④检查【快照输出目录】的写入权限与剩余空间。

 

  2、保存后重新打开验证

 

  ①在调试器命令区输入【help tracesave】,查看当前版本的参数说明。

 

  ②对于支持该兼容命令的MULTI 8环境,按帮助所列语法执行【tracesave】,指定快照文件路径,并核对可选保存内容。

 

  ③检查【命令区】中的执行结果,记录保存失败、数据读取失败或内容缺失提示。

 

  ④在另一个调试会话中查看【help traceload】,按对应语法加载保存的【.dsnap文件】。

 

  ⑤不建立目标连接,核对离线会话中的故障位置和关键数据。

 

  MULTI 8仍保留tracesave、traceload作为兼容命令,其中保存行为已改为生成调试快照。旧版本的同名命令可能处理追踪会话文件,不能仅凭命令名称认定保存范围相同。验证快照可读后,再安排目标板复位或转作其他用途。

 

  二、Green Hills MULTI快照能保留哪些调试信息

 

  快照可以涉及目标状态、调试器状态、History状态和源码等内容。具体文件中保存了什么,应通过保存选项和离线检查确认,不能把调试器具备的全部查看能力都算作快照内容。

 

  1、已保存的目标状态

 

  ①加载【快照文件】,核对程序停止位置及当前选中的【核心】或【任务】。

 

  ②查看与故障有关的【寄存器】、变量及内存地址,记录能够读取的内容。

 

  ③沿当前【调用栈】检查相关函数,核对参数、局部变量和指针指向的数据是否可用。

 

  ④将缺失的【内存地址范围】或无法求值的变量写入核查记录。

 

  变量和调用栈的展示依赖相应的寄存器、内存及调试信息。保存了某个指针的值,也不代表它指向的整片数据都已保存。变量被编译优化掉、数据未采集或栈已经损坏,都可能限制离线查看。

 

  2、调试器和History相关状态

 

  调试快照支持保存调试器及History状态,但故障发生前的执行过程需要事先采集。打开快照不会补出当时没有记录的历史。

 

  ①保存前检查【History】中的数据,确认关注的时间段和事件已经存在。

 

  ②记录故障附近的【时间位置】、任务名称和关键事件。

 

  ③加载快照后重新打开【History】,核对相关时间段及事件能否查看。

 

  ④需要分析执行路径时,检查随会话保存的【追踪数据】及对应工具是否可用。

  3、源码及其对应关系

 

  ①保存时核对是否包含【源码】,记录未纳入快照的文件。

 

  ②离线打开后,检查【源码视图】中的函数和行号,与本次构建版本进行对照。

 

  ③补充保存对应的【ELF文件】【映射文件】和构建说明,统一放入故障资料目录。

 

  ④在接收方环境中验证【源码文件】能否定位,记录需要补充的路径或文件。

 

  三、Green Hills MULTI快照保存后如何核验

 

  文件生成成功,只能说明保存动作完成。是否足够支持后续分析,还要围绕故障问题逐项查看,尤其要区分离线查看现场与恢复硬件运行这两件事。

 

  1、按故障线索检查资料是否够用

 

  ①选取本次问题涉及的【变量】【寄存器】和内存区域,整理待核查对象。

 

  ②在离线会话中依次读取这些对象,对照保存前的记录。

 

  ③检查异常指针指向的【数据缓冲区】,核对长度字段、状态字段及相关内容。

 

  ④发现缺失后,在目标现场仍可用的情况下,按当前版本支持的快照设置补充采集,再重新保存。

 

  ⑤将每份【快照文件】与采集时间、现象说明和检查结果对应保存。

 

  例如,定位缓冲区问题时,只看到出错指令和地址还不够,往往还要查看长度、边界及相邻内容。文件大小也不能直接说明采集是否完整,关键是问题相关的数据能否读到。

 

  2、标明多核状态和分析边界

 

  多核系统中,暂停一个核心后,其他执行单元仍可能改变共享数据。快照中的状态是否具有一致性,与目标控制方式有关。

 

  ①采集前核对【目标列表】中相关核心的运行状态,检查当前连接支持的同步停止方式。

 

  ②在【故障记录】中填写停机方式、采集时机及仍可能变化的数据来源。

 

  ③离线分析时,把【快照数据】与串口日志、测试输入和外部设备记录按时间对应。

 

  ④需要验证修复或观察后续执行时,重新建立【目标连接】,按记录的测试条件开展验证。

 

  离线快照用于查看保存下来的调试信息,不能据此承诺整块硬件能够恢复到原状态继续运行。外设动作、外部输入以及未记录的历史,仍需其他测试资料补充。

  总结

 

  MULTI调试快照的价值,是让一次难得的故障现场能够被继续查看和讨论。实际保存时,围绕问题核对数据,比单纯生成一个文件更有意义。源码、构建版本和测试条件也应随现场保留,接手人员才能判断看到的状态来自哪里。希望这些核验方法能帮助大家留住有用的调试线索,减少更换设备或交接分析时的信息遗漏。

176 5129 0128