如何实现Ozone项目可移植?

描述

SEGGER Ozone是用于J-link和J-Trace的多平台调试、分析工具。可加载IAR,Keil,Gcc,Clang/LLVM等工具链生成的Elf/Dwarf可执行文件,进行C/C++源代码调试和汇编指令调试。

Ozone调试器加载elf文件时,会自动查找elf文件中引用的源文件。但大多数编译器会把源文件的路径设置成绝对路径,如果把项目移动到其他文件夹或是另一台计算机再打开,调试时将无法找到源文件。本文将解析如何实现Ozone项目(.jdebug)可移植。

1解决方式

在Ozone中,使用项目向导新建项目时(Ozone调试器使用攻略),如果导入的elf文件和对应的源文件位于同一文件夹中,Ozone就会自动将该项目设置为可移植的。

如果不满足这个条件,elf文件位置将被默认设置为绝对路径,项目位置移动后,将无法立即使用Ozone对(.jdebug)项目进行调试,提示无法找到elf文件。可以通过编辑(.jdebug)文件中的Project.AddPathSubstitute()和File.Open()语句来解决这个问题。

(1).  在File.Open()中设置了elf文件的路径,该函数支持相对路径。修改这条语句为项目的相对路径,以保证项目的可移植性。

(2).  在Project.AddPathSubstitute()中全部或部分替换elf文件中引用源文件的绝对路径。你可以在View->Source Files下验证路径替换是否有效。如果没有找到源文件,它旁边会有一个警告小图标。

1验证

Ozone自动生成的项目可移植性可能无法满足实际需求。SEGGER官网示例工程下载链接

解压后,使用Ozone调试器打开Ozone文件夹中的项目文件Ozone_Project.jdebug, 提示无法找到 elf 文件。

C++

要解决此问题,先关闭Ozone并使用文本编辑器打开Ozone_Project.jdebug文件,查找“File.Open”,你会看到这里有一条绝对路径,它是创建项目原始主机的elf文件位置。

C++

将这条绝对路径修改为相对路径File.Open(“../Output/Debug/Exe/ Ozone_Portable_Project_Example.elf”); 保存文件并使用Ozone打开。

C++

Ozone提示找不到main.c文件,这是因为语句“Project.AddPathSubstitute”有问题。

C++

修改为Project.AddPathSubstitute ("C:/ Users /Nino /Documents /SEGGER Embedded Studio for ARM Projects/Ozone_Portable_Project_Example","$(ProjectDir)/.."); 保存项目文件并再次使用Ozone打开。

C++

可以看到在Ozone中正确显示源文件。

通过修改*.jdebug的方式,可以非常容易的实现项目可移植。

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分