testing - 在测试期间到达线路时执行个人 trace32 功能

标签 testing real-time trace32 lauterbach

我正在通过 lauterbach-trace32 探针在物理硬件上测试实时应用程序。

Trace32 文档过于庞大且技术性很强,但我无法找到如何实现我需要的内容。我想知道是否有一种方法可以在程序执行中每次到达特定代码行(正在测试)时执行trace32函数。

我需要的是类似于数据库场景中的触发器,每次满足特定条件时都会引发自动事件。

谢谢大家!

最佳答案

您始终可以设置一个断点,每次遇到断点时都会执行 PRACTICE 命令。例如

Break.Set myFunc /CMD "PRINT ""Hello World""" /RESUME 

因此,这将在达到函数 myFunc() 时停止您的 objective-c PU。然后 PRACTICE 命令 PRINT "Hello World" 被执行,最后你的 objective-c PU 继续执行(感谢选项 /RESUME)。 (考虑双引号转义字符串中的双引号)

除了单个命令,您还可以执行更多命令(通过多次使用选项 /CMD)或执行 PRACTICE 脚本。

如果您想在特定代码行上触发调试器操作而不停止该代码行上的 CPU,您将需要具有外部跟踪接口(interface)的实时跟踪。所以例如您将需要带有嵌入式跟踪宏单元 (ETM) 的 ARM CPU 或带有 Nexus 接口(interface)的 PowerPC。此外,您需要 Lauterbach 硬件进行跟踪记录,例如PowerTrace、CombiProbe 或 uTrace。

如果您有实时跟踪,您可以在特定代码行上设置“触发点”,并在“触发点”触发时执行命令。它看起来与断点几乎相同:

Break.Set myFunc /TraceTrigger /CMD "PRINT ""Hello World""" /RESUME 

所以唯一的区别是选项“/TraceTrigger”。当然,您应该确保实时跟踪确实适用于您的设置。

关于testing - 在测试期间到达线路时执行个人 trace32 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31871565/

相关文章:

trace32 - Lauterbach - 加载两个 elf 文件但保留两个符号

trace32 - 命中断点时劳特巴赫执行脚本

testing - 如何使用 JUnit 测试 Servlet?

c# - GUIDE - 自动化测试网页

c# - 如何让我的 ServiceStack 测试使用 RestSharp 进行身份验证?

angularjs - 如何在配置文件中启动 webdriver-manager

python - 如何使用 T32_WriteMemory 函数将值写入 python 中的内存地址

django - 如何在Django + Pusher中存储聊天记录?需要 Tornado 或 celery 吗?

java - 在实时图中用不同的值更新 JLabel

node.js - 如何在客户端网站嵌入nodejs应用程序?