如何设置SEGGER Ozone调试器执行自动化调试?

浏览:73来源:本站时间:2023-12-15

Ozone是一个跨平台支持的代码调试软件,支持Segger J-link和J-Trace调试器。可以加载IAR、keil、GCC、clang/LLVM等工具链编译生成的Elf/Dwarf可执行文件,进行C/C++源码调试和汇编指令调试。

Ozone项目工程文件的结构是一种类似于C语言的脚本语言,允许用户通过编辑该脚本文件来配置Ozone软件的用户界面和自动化调试工作流程。本文将介绍如何调用Ozone支持的脚本函数来实现自动化的调试工作。

图片



可以通过Ozone软件GUI所执行的大多数操作都有一个对应的脚本函数,在工程文件中调用该函数即可实现同样的效果。例如设置断点,观察某个变量或者寄存器的值,将某些分析视图的结果数据导出等等。以及自定义芯片程序在Debug开始之前,Debug暂停和芯片复位之后需要执行的特定操作等等。这些都可以通过编辑Ozone工程文件来实现。

Ozone支持的脚本函数的功能和作用的详细介绍在Ozone用户手册中有详细的介绍,大多数函数从其命名中即可清晰直观的了解到所对应执行的操作。下面将简单介绍一些常用脚本函数的例子。

例如通过调用函数来设置断点,脚本函数支持各类型断点的操作,包括断点设置,使能,删除等操作。支持在特定代码位置设置代码断点或者数据断点,只需要在脚本文件调用对应的函数即可。

图片

可以通过函数指定在哪个C文件的什么代码行位置设置断点,例如在OS_TraceDemo.c文件的第190行位置设置代码断点。

图片图片

当设置的断点在自动化调试过程中被触发的时候,可以通过Break.SetCommand函数指定该断点被触发时需要执行的操作。

图片

可以根据每个断点位置设置对应的操作,例如在OS_TraceDemo.c第190行位置断点被触发时调用脚本文件中的OnBPHit2()函数,在该函数中将指令跟踪调试Trace到的数据分析结果通过Profile系列函数进行导出,支持导出为txt格式或者csv格式。

图片

在对应的文件路径下即可找到所导出的指令跟踪分析结果,代码覆盖率分析的结果如下。

图片

在脚本自动化执行过程中可以将相应的log或者错误信息输出到Ozone的控制台窗口,通过调用Util系列函数来实现。

图片

如果不想通过Ozone的控制台窗口查看输出,也可以调用函数将log信息保存到指定的log文件中。

图片

在脚本的log文件中可以看到自动化调试的执行记录,包括断点的触发记录,以及触发后执行的对应操作等。如调用了Watch.Add函数在watch观察窗口观察某个变量的数值,调用函数后,Ozone的watch窗口中将会添加对应的变量。

图片

此处通过函数添加观察的变量名称是“on”,在设置的断点2被触发时该变量的值为1。

图片

本文简单介绍了下Ozone支持的脚本函数,以及调用这些函数所能够实现的自动化调试功能,包括在指定位置设置各类型断点,指定断点被触发后对应执行的操作,自动导出Trace跟踪的数据结果等等。Ozone支持的众多脚本函数和命令允许用户在需要执行大规模调试工作的时候进行自动化调试,能够减轻客户测试工程师的工作。Ozone支持的完整脚本函数的详细介绍请参考Ozone的用户手册,本文中介绍使用的完整工程示例可以通过如下链接进行下载,感兴趣的用户也可以动手进行尝试:https://wiki.segger.com/Automated_Tests_with_Ozone

京ICP备:京ICP备05011254号-1 版权归北京麦克泰软件技术有限公司所有
北京麦克泰软件技术有限公司