【问题标题】:Is it possible to set a ranged breakpoint in TRACE32 using symbols?是否可以使用符号在 TRACE32 中设置范围断点?
【发布时间】:2020-11-24 09:50:09
【问题描述】:
我想在 TRACE32 软件中使用符号名称设置一个范围断点。通常的语法是这样的
start--end
但依赖于我的 ELF,我需要这样的动态范围
0x00--SYM_NAME.
有可能吗?如果是,如何?
感谢高级
我为 PowerPC 使用 DIAB(现在的 Windriver)编译器,TRACE32 版本是 2013 年 8 月。
【问题讨论】:
标签:
debugging
breakpoints
trace32
lauterbach
【解决方案1】:
TRACE32 区分普通地址和修饰地址(=访问类别 + 地址)。范围允许以下地址组合:
<plain address>--<plain address>
<decorated address>--<plain address>
<decorated address>--<decorated address>
如果你想使用调试符号作为范围结束,你有两种选择:要么将调试符号转换为纯地址,要么确保第一个地址也被修饰。不推荐使用第二个选项,因为它需要知道要使用哪个访问类。
Break.Set 0x0--(ADDRESS.OFFSET(my_func)-1)
Break.Set P:0x0--(my_func-1)
获得所需范围的另一种方法可能是使用部分信息,例如在整个 .text 部分设置断点范围:
Break.Set sYmbol.SECPRANGE(\\my_program\.text)
或者从一个部分的开始直到某个函数:
Break.Set sYmbol.SECADDRESS(\\my_program\.text)--(sYmbol.BEGIN(my_func)-1)