操作系统和Hypervisor 感知调试

综述

对虚拟机管理程序、操作系统和应用程序的重要见解

我们的 TRACE32® 操作系统感知调试可让您深入了解您的应用程序及其所运行的操作系统,无论您使用的是 Linux 等丰富的操作系统、实时操作系统 (RTOS)、AUTOSAR 标准产品等行业专用操作系统,还是混合使用所有操作系统。

在虚拟化系统中,多个操作系统由一个hypervisor ,我们的TRACE32®Hypervisor 感知调试允许用户对每个客户操作系统/虚拟机(VM)执行并发的操作系统感知调试,并显示整个系统的概览。除了静态管理程序,我们甚至还支持动态管理程序,动态分配内存资源和内核给虚拟机,这是嵌入式行业独一无二的TRACE32®功能。

我们的 TRACE32® 工具可访问hypervisor 和操作系统的结构和数据,以便您更好地了解它们是如何运行和利用芯片资源的。

支持 80 多种操作系统

TRACE32® 操作系统意识可用于各种嵌入式操作系统。它支持嵌入式应用中使用的丰富操作系统、实时操作系统和所有最流行的开源和商业操作系统。

控制整个软件栈

调试从用户应用程序到设备驱动程序的整个软件栈,从而查询并显示线程、消息队列等所有操作系统对象。在虚拟化系统中,您可以同时调试所有虚拟机及其应用程序。

操作系统感知跟踪与性能分析

我们的 TRACE32® 工具提供许多复杂的实时分析功能,包括符号函数调用跟踪和详细的性能分析功能。这些工具还可在hypervisor 控制下的虚拟化系统中使用。

深入了解操作系统资源

我们的 TRACE32® 工具不仅能静态显示操作系统对象的当前状态,还能显示操作系统对象随时间变化的动态行为,例如操作系统任务调度分析。

在多核 SoC 上调试多个操作系统

您可以调试每个内核运行自己(不同)操作系统的异构 AMP 系统,也可以调试共享单个操作系统实例的 SMP 集群 AMP 系统。

受益于虚拟和物理目标中的操作系统感知调试

TRACE32®PowerView GUI 为您提供与真实硬件相同的仿真调试体验。基于我们的工具无关概念,无论目标是虚拟的还是物理的,您都能获得相同的体验。

特点

专为满足您对任何类型嵌入式系统的要求而设计

我们的 TRACE32®Hypervisor 和操作系统感知技术大大简化了调试活动,因为您可以立即访问Hypervisor 、操作系统和应用程序的所有组件:您可以显示系统对象,如任务、线程、semaphores 和邮箱,设置任务感知断点并执行任务感知性能监控。如果你的操作系统使用 MMU(内存管理单元),我们的调试器可以使用操作系统 MMU 表中的信息访问代码和数据,并通过它找到有效的逻辑到物理转换。

各项功能的可用性取决于所用芯片和 TRACE32® 产品的规格。请在下面的幻灯片中了解更多信息。

显示任务列表

显示操作系统的任务表或某一特定任务的详细信息。

全局任务列表是 TRACE32®hypervisor 感知调试的核心。它列出了客户操作系统和hypervisor 的所有任务/进程/线程。PowerView 可以在其图形用户界面上直观地显示任何任务的上下文,即使虚拟机当前未激活也是如此。

显示堆栈使用情况

对于任务的堆栈使用情况,该窗口会显示所有活动任务及其堆栈指针地址、最大堆栈使用量、堆栈面积和堆栈利用率。

显示内核对象和日志

根据使用的操作系统,您可以显示各种内核资源,例如进程、线程、队列、 Semaphores、计时器、事件组、流缓冲区、消息缓冲区、内核驱动程序或内核日志缓冲区。

任务活动时间图表

显示任务运行时间图表,其中包含不同任务所花费的时间。 你可以看到程序的关键路径花费了多少时间,并轻松识别中断或任务优先级造成的挑战。

任务绩效分析

在这里可以分析任务运行时间。这包括任务的总运行时间、CPU 利用率、计数、任务的调度频率以及任务调度的最短时间、最长时间和平均时间。

嵌套函数运行时分析

显示函数嵌套的图形树。显示函数的最短运行时间、最长运行时间、平均运行时间和总运行时间,以及运行次数和占总执行时间的比例。

虚拟任务切换和查看内核堆栈

显示操作系统、程序库和应用程序的调用栈,包括本地数据存储、参数传递、外层子程序和程序块上下文以及返回状态。这对分析任何进程的上下文和检查线程的当前状态都很有用。调用栈可以清楚地显示应用程序是否以及在何处等待特定的操作系统事件。

包括操作系统在内的整个系统的代码覆盖率

显示与模块(包括操作系统代码)相关的代码覆盖率分析结果。您可以分析多个代码覆盖率指标,也可以显示所选指标和所有包含指标的结果。例如,MC/DC 指标还包括条件覆盖率、判定覆盖率和语句覆盖率。

显示堆栈使用情况

对于任务的堆栈使用情况,该窗口会显示所有活动任务及其堆栈指针地址、最大堆栈使用量、堆栈面积和堆栈利用率。

显示内核对象和日志

根据使用的操作系统,您可以显示各种内核资源,例如进程、线程、队列、 Semaphores、计时器、事件组、流缓冲区、消息缓冲区、内核驱动程序或内核日志缓冲区。

任务活动时间图表

显示任务运行时间图表,其中包含不同任务所花费的时间。 你可以看到程序的关键路径花费了多少时间,并轻松识别中断或任务优先级造成的挑战。

任务绩效分析

在这里可以分析任务运行时间。这包括任务的总运行时间、CPU 利用率、计数、任务的调度频率以及任务调度的最短时间、最长时间和平均时间。

嵌套函数运行时分析

显示函数嵌套的图形树。显示函数的最短运行时间、最长运行时间、平均运行时间和总运行时间,以及运行次数和占总执行时间的比例。

虚拟任务切换和查看内核堆栈

显示操作系统、程序库和应用程序的调用栈,包括本地数据存储、参数传递、外层子程序和程序块上下文以及返回状态。这对分析任何进程的上下文和检查线程的当前状态都很有用。调用栈可以清楚地显示应用程序是否以及在何处等待特定的操作系统事件。

包括操作系统在内的整个系统的代码覆盖率

显示与模块(包括操作系统代码)相关的代码覆盖率分析结果。您可以分析多个代码覆盖率指标,也可以显示所选指标和所有包含指标的结果。例如,MC/DC 指标还包括条件覆盖率、判定覆盖率和语句覆盖率。

它是如何工作的

有无调试整个系统Hypervisor

调试操作系统需要调试器的特殊支持。我们说,调试器需要 "感知 "操作系统。由于我们的 TRACE32® 调试和跟踪工具支持多种目标操作系统,这种特殊支持并不是静态链接在调试器软件中,而是可以根据所使用的操作系统作为扩展动态加载。

提供操作系统调试功能的文件集被称为 "意识"。为了能够读取任务列表或允许进程或模块调试,操作系统意识使用内核符号访问操作系统内核的内部结构。TRACE32 操作系统感知和TRACE32 MMU 支持允许用户跨进程无缝调试: 用户可以直接访问每个进程的虚拟地址空间,并显示每个进程的当前寄存器集和堆栈框架。加载操作系统特定扩展后,我们的 TRACE32®PowerView 软件会提供额外的命令、选项和显示,从而简化操作系统的调试。

虚拟化概念允许在单一硬件平台上并行运行多个操作系统。hypervisor 是虚拟化的核心,可确保一切工作可靠高效。hypervisor 是一个软件层,完成两项任务:启动和管理虚拟机(VM)以及虚拟化虚拟机的物理硬件资源。在虚拟机中运行的操作系统称为客户操作系统。访客对虚拟化硬件资源的所有访问都由hypervisor 映射到物理资源。

利用我们的 TRACE32®hypervisor 感知功能,调试器可以检测并可视化hypervisor 的虚拟机。现在可以同时调试多个操作系统。最重要的目标是对整个系统进行无缝调试。这意味着当系统停止在某个断点时,可以检查并更改每个进程、所有虚拟机的当前状态,以及hypervisor 和真实硬件平台的当前状态。此外,您还可以在代码的任意位置设置程序断点。


支持 AUTOSAR

调试、跟踪和剖析基于 AUTOSAR 的汽车系统

对于汽车行业中基于 AUTOSAR 的安全关键(多核)微控制器/微处理器系统,需要先进的分析技术来证明其功能安全性。我们的 TRACE32® 调试和跟踪工具不仅能通过我们的 TRACE32® AUTOSAR 操作系统感知功能深入了解此类系统,还能通过我们与最重要的 AUTOSAR 工具供应商的长期合作提供先进的时序分析解决方案。


支持的操作系统

支持嵌入式应用中使用的任何流行操作系统

TRACE32® 支持嵌入式应用中使用的所有流行的开放源代码和商业实时及丰富的操作系统,总共支持 80 多个操作系统。

最受欢迎的操作系统

  • FreeRTOS

    我们的TRACE32®软件包包含一个可随时运行的FreeRTOS实时内核配置。FreeRTOS 意识可方便地访问任务列表和其他内核信息,生成性能分析数据,并使您能在运行 FreeRTOS 的目标上使用 TRACE32® 系统进行最有效的调试。

    了解更多
  • 利纳克斯

    我们的TRACE32®软件包包含一个可随时运行的Linux操作系统配置。Linux意识可让您轻松访问任务列表和其他内核信息,生成性能分析数据,并使您能在运行Linux的目标上使用TRACE32®系统进行最有效的调试。

    了解更多
  • PikeOS/PikeOS MPU

    我们的TRACE32®软件包包含一个可立即运行的配置,用于SYSGO AG的PikeOS实时操作系统。PikeOS 意识可方便地访问任务列表和其他内核信息,生成性能分析数据,并使您能够在运行 PikeOS 或 PikeOS MPU 的目标上使用 TRACE32® 系统进行最有效的调试。

    了解更多
  • QNX

    我们的TRACE32®软件包包含一个可立即运行的配置,可用于黑莓公司的QNX实时内核。通过与 BlackBerry 的密切合作,我们建立了一个高精密的 QNX 感知,使您能够在运行 QNX 的目标上使用 TRACE32® 系统进行最有效的调试。

    了解更多
  • VxWorks

    我们的 TRACE32® 软件包包含一个可立即运行的配置,可用于风河公司的 VxWorks 实时内核。通过与风河公司的密切合作,我们建立了一个高精密的 VxWorks 意识,使您能够在运行 VxWorks 的目标上使用 TRACE32® 系统进行最有效的调试。

    了解更多
  • Zephyr OS

    我们的 TRACE32® 软件包包含一个可随时运行的开源 ZephyrOS 实时操作系统配置。ZephyrOS 意识可让您轻松访问任务列表和其他内核信息,生成性能分析数据,并使您能够在运行 ZephyrOS 的目标上使用 TRACE32® 系统进行最有效的调试。

在这里,您可以找到 80 多种支持的操作系统。

查找您的Target OS
支持的管理程序

支持嵌入式应用中使用的最广泛的超级管理程序

TRACE32® 支持嵌入式应用中的各种开源和商用静态和动态管理程序。静态管理程序对资源进行静态分区,并在系统实例化时分配资源,而动态管理程序则向虚拟机动态分配资源。内存通常由 MPU 或 MMU 通过两级转换分配给虚拟机。支持动态管理程序是我们的 TRACE32® 工具在嵌入式行业的独特功能。


定制和保密操作系统

为定制和保密操作系统开发自己的操作系统意识

即使是出于保密等原因,我们无法提供操作系统感知调试开箱即用支持的操作系统,您也可以使用我们的 TRACE32® 工具,而无需依赖这一功能。

我们的 TRACE32®PowerView GUI 提供了一种添加定制功能的机制,称为扩展。在扩展中,您可以调用 API 函数来实现各种功能,包括显示 (RT)OS 内核资源(如任务列表)、执行任务感知统计分析或执行特定任务堆栈覆盖。

这样,您就可以为自己的操作系统轻松实现操作系统感知调试。我们的扩展开发包(EDK)中包含了构建扩展所需的所有工具,TRACE32® 客户可免费索取。