在某些情况下,当目标核心仍在运行时,Trace32 可能会挂起或关闭。当尝试重新打开 Trace32 GUI 时,这会导致出现以下屏幕:
有没有办法使用命令行强制“重置并连接”(在弹出窗口中选择“是”),而不需要人工交互?
我想设置一个断点,当两个变量包含某个值时,该断点将停止我的应用程序。例如,当x == 10和y == 11时都停止执行。
如何在劳特巴赫TRACE32中实现这一目标?
在帮助文档中,可以使用以下命令设置数据访问断点
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)
有办法吗?
问题场景:简单来说,我们是否有一个Trace32命令从加载到目标的ELF文件中读取符号(及其内容)?我们有这种特殊情况,其中ELF文件的特定于应用程序的调试符号是ELF中'.noload'部分的一部分,这意味着符号/内容是ELF文件的一部分(使用readelf -a xxxx读取时可用). elf_file_name)但不是生成的最终二进制图像的一部分,即ELF文件中的'.noload'部分在生成闪存到目标内存的xxx.bin时被剥离.
任何输入:
- 我需要一个trace32命令的帮助,该命令可以直接读取ELF文件中的符号内容而不是目标内存.
- 还不确定我是否可以在练习脚本中使用'readelf'?如果我们对上述查询没有任何解决方案,可以在这方面提供帮助吗?
我正在使用劳特巴赫来调试 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)
我不想存根整个函数。代码必须保持不变。
我正在使用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命令将每个内存转储追加到文件中?
是否可以在 Lauterbach-Trace32 Debugger 中绘制图形或记录特定变量的日志。如果是,请帮助我解决这个问题
我有一个脚本可以初始化终端并在 Trace32 终端中打印其中的信息,但我无法编辑该文件。我正在使用term.write命令将终端窗口中的内容记录到文件中。但它确实记录了执行此命令之前写入的信息。
所以,我尝试Printer.file并winprint.term.view命令。现在我得到这个错误。
此配置的终端窗口已打开
如何将终端的所有内容(包括终端中已经写入和将要写入的内容)记录到文件中?
我将把几个 elf-fils 加载到 TRACE32 和芯片上。但是劳特巴赫只保留了最后上传的精灵文件的符号。我怎样才能改变这种行为?
这是一个简单的问题,只是想知道我是否可以在没有 GUI 的情况下通过命令行和脚本使用 Trace 32 功能,例如闪烁、断点和监视变量来实现自动化过程?如果可能的话,是否有一个很好的链接来阅读如何做到这一点?
lauterbach ×10
trace32 ×9
arm ×1
automation ×1
breakpoints ×1
cmd ×1
elf ×1
embedded ×1
jtag ×1
readelf ×1