标签: trace32

如何强制连接到已在使用的 PowerDebug?

在某些情况下,当目标核心仍在运行时,Trace32 可能会挂起或关闭。当尝试重新打开 Trace32 GUI 时,这会导致出现以下屏幕:

重置并连接?

有没有办法使用命令行强制“重置并连接”(在弹出窗口中选择“是”),而不需要人工交互?

trace32 lauterbach

6
推荐指数
1
解决办法
1万
查看次数

如何在Trace 32中放置具有逻辑条件的断点

我想设置一个断点,当两个变量包含某个值时,该断点将停止我的应用程序。例如,当x == 10和y == 11时都停止执行。

如何在劳特巴赫TRACE32中实现这一目标?

trace32 lauterbach

5
推荐指数
1
解决办法
1325
查看次数

在trace32中进行LauterBach调试:是否可以在进入上下文之前为局部变量设置数据断点?

在帮助文档中,可以使用以下命令设置数据访问断点

var.break <variable> /READWRITE
Run Code Online (Sandbox Code Playgroud)

但是,这仅在我们输入该变量的上下文时才有效。

因为我想编写PRACTICE脚本来执行自动调试,所以我想在程序运行之前执行此操作。就像是

....
var.break <foo>::<variable> /READWRITE
GO
WAIT !run()
...
Run Code Online (Sandbox Code Playgroud)

有办法吗?

breakpoints local-variables trace32 lauterbach

4
推荐指数
1
解决办法
5598
查看次数

Trace32命令从ELF文件中读取符号内容

问题场景:简单来说,我们是否有一个Trace32命令从加载到目标的ELF文件中读取符号(及其内容)?我们有这种特殊情况,其中ELF文件的特定于应用程序的调试符号是ELF中'.noload'部分的一部分,这意味着符号/内容是ELF文件的一部分(使用readelf -a xxxx读取时可用). elf_file_name)但不是生成的最终二进制图像的一部分,即ELF文件中的'.noload'部分在生成闪存到目标内存的xxx.bin时被剥离.

  • ".noload"部分中的调试符号是静态分配的值,这些值在运行时不会更改.
  • 当我尝试读取'.noload'部分的调试符号部分时(在编译成二进制文件并加载到Trace32之后),我在trace32弹出窗口中看到'MMU fail'标记,这意味着trace32正在尝试从内存中读取符号内容但是是不可访问的,因为'.noload'部分的符号部分根本没有加载,尽管它们已映射地址.

任何输入:
- 我需要一个trace32命令的帮助,该命令可以直接读取ELF文件中的符号内容而不是目标内存.
- 还不确定我是否可以在练习脚本中使用'readelf'?如果我们对上述查询没有任何解决方案,可以在这方面提供帮助吗?

elf debug-symbols trace32 readelf lauterbach

4
推荐指数
1
解决办法
5483
查看次数

遇到断点时劳特巴赫执行脚本

我正在使用劳特巴赫来调试 PowerPC 嵌入式 C 软件。我想从 .cmm(PRACTICE) 脚本执行以下算法。请让我知道是否可能:

Set Breakpoint
When Breakpoint is hit, execute a .cmm file. This .cmm file will rewrite the values of an array.
Continue execution of program
Run Code Online (Sandbox Code Playgroud)

我不想存根整个函数。代码必须保持不变。

trace32 lauterbach

3
推荐指数
1
解决办法
1999
查看次数

trace32-将多个地址范围的内存转储到单个二进制文件

我正在使用Lauterbach调试器从不同的内存部分转储到二进制文件。到目前为止,我已经设法使用以下方法为每个地址范围生成一个二进制文件

data.save.binary output1.txt var.Range(sDummyArray[startRange1..endRange1])

data.save.binary output2.txt var.Range(sDummyArray[startRange2..endRange2]) 

...
Run Code Online (Sandbox Code Playgroud)

有没有办法将多个二进制(内存转储)文件“拼接”在一起以提供一个二进制文件,或者使用我错过的trace32命令将每个内存转储追加到文件中?

embedded trace32 lauterbach

3
推荐指数
1
解决办法
6426
查看次数

将结构变量记录到trace32中的文件中

我正在尝试使用练习脚本将结构的内容记录到文件中。

我不想对结构的每个字段都使用 Var.VALUE,到目前为止我已经找到了 Var.PRINT 命令,它显示了结构中包含的所有信息。

但是我不知道是否可以将其输出到文件中,或者是否有任何其他我不知道的解决方案用于记录结构的值。

trace32

3
推荐指数
1
解决办法
4282
查看次数

如何将 Trace32 终端视图打印到文件?

我有一个脚本可以初始化终端并在 Trace32 终端中打印其中的信息,但我无法编辑该文件。我正在使用term.write命令将终端窗口中的内容记录到文件中。但它确实记录了执行此命令之前写入的信息。

所以,我尝试Printer.filewinprint.term.view命令。现在我得到这个错误。

此配置的终端窗口已打开

如何将终端的所有内容(包括终端中已经写入和将要写入的内容)记录到文件中?

arm jtag trace32 lauterbach

3
推荐指数
1
解决办法
4510
查看次数

构建 Linux 内核映像 (vmlinux) 以使用 DWARF3 而不是 DWARF4

我正在开发一个依赖于 Lauterbach JTAG 调试器硬件和软件的项目,对目标 JTAG 电缆的支持已于 2011 年 7 月终止。我们在 omap2 处理器上使用 Linux 2.6.33 内核。我们使用 gcc 4.9.2 来构建内核映像(不确定 bintools 的版本)。

对于那些不熟悉 Lauterbach 如何许可其软件的人来说,目标电缆(连接调试器和目标之间)带有支持合同日期。可以使用支持期之前和支持期结束之前的任何版本的 Lauterbach Trace-32 软件,但电缆支持结束后的任何版本都不能使用,每次会话 30 分钟的演示期除外。我们正在通过采购流程来续签电缆的支持合同,但在完成之前(可能需要几个月的时间),我们只能坚持现有的条件。

看来我们使用的工具链生成的调试信息对于 2017 年 7 月之前发布的 Trace-32 调试器软件的最后一个版本来说太新了。尝试使用以下命令加载内核映像 (vmlinux) 的符号:

data.load.elf \\path\to\vmlinux /nocode
Run Code Online (Sandbox Code Playgroud)

失败并显示类似以下内容的消息:

error: entry near offset 5432100. in file \\path\to\vmlinux (use DUMP)
Run Code Online (Sandbox Code Playgroud)

当然,最简单的解决方案是更新到 Trace-32 软件的第一个版本,该版本支持我们的工具链生成的任何 ELF/DWARF 组合。我们知道最新版本可以工作,但我们的电缆不支持该版本,并且直到我们的采购人员确定这是测试设备还是软件(它们来自不同的预算)之后才会支持。

在接下来的几个月里,我们需要一个解决方法。我正在寻找以下其中一项:

  1. 告诉工具链生成与调试器软件兼容的调试信息的某种方式
  2. 将我们的工具链生成的 vmlinux ELF/DWARF 文件转换为早期 ELF/DWARF 格式修订版的某种方法,该修订版与我们被迫使用的 Trace-32 版本兼容 (R.2010.11.000028724)。
  3. 我们没有想到的问题的任何其他解决方案

我预先感谢大家的帮助。

编辑:我不是 100% 确定工具链是生成 DWARF3 还是 DWARF4,所以我可能需要制作一个 ELF/DWARF2“vmlinux”

debugging gnu-toolchain dwarf trace32 lauterbach

2
推荐指数
1
解决办法
1095
查看次数

将 C 代码中的调试文本打印到 Lauterbach TRACE32

是否可以将 C 代码(在嵌入式系统上运行)中的调试文本打印到 Lauterbach TRACE32(通过 Lauterbach 硬件连接)?以前我们通过UART(串行连接)输出,但现在不可用了。

c trace32 lauterbach

2
推荐指数
1
解决办法
947
查看次数