1 Yocto 项目性能分析与跟踪手册

1 简介

Yocto 项目集成了多种跟踪与性能分析工具。本手册介绍它们的基本用法, 并通过示例说明如何分析应用程序与系统的行为。

这些工具大多用途广泛,并且各自有较为完善、详尽的文档, 可以帮助解决在 Linux 中遇到的各种问题。 介绍具体工具的各节都附有该工具的文档和网站链接。

本手册介绍一组常用且普遍有用的跟踪与性能分析方法, 并说明如何在各工具中适当地应用这些方法。 这些方法以通用的逐层深入分析思路为基础,可用于解决大量不同问题。 更高级的用法和疑难问题,请参阅对应工具的文档或网站。

本手册最后一章汇集实际案例。随着我们使用这些工具解决更多问题, 案例也会持续更新,欢迎提出补充建议。

1 基本配置

大多数工具只包含在 sdk 镜像中,或包含在将 tools-profile 加入 EXTRA_IMAGE_FEATURES 后构建的镜像中。

要使用本手册介绍的所有工具,可以构建并启动一个 sdk 镜像,例如:

$ bitbake core-image-sato-sdk
$ bitbake core-image-weston-sdk
$ bitbake core-image-rt-sdk

也可以在 build/conf/local.conf 中, 把 tools-profile 加入 EXTRA_IMAGE_FEATURES:

EXTRA_IMAGE_FEATURES:append = " tools-profile"

采用 tools-profile 方法时,不必构建 SDK 镜像。 跟踪与性能分析工具也会包含在非 SDK 镜像中,例如:

$ bitbake core-image-sato

备注

Yocto 构建系统默认会剥离打包后二进制文件中的符号, 这会使部分工具难以使用。

构建镜像时,可以在 build/conf/local.conf 中 将 INHIBIT_PACKAGE_STRIP 设为 "1",以阻止符号剥离:

INHIBIT_PACKAGE_STRIP = "1"

该设置会明显增加镜像体积。

如果已经构建了剥离符号的镜像,可以生成调试包(xxx-dbg),再按需手动安装。

要为软件包生成调试信息,可以在 build/conf/local.conf 中 将 dbg-pkgs 加入 EXTRA_IMAGE_FEATURES,例如:

EXTRA_IMAGE_FEATURES:append = " dbg-pkgs"

另外,要生成正确类型的调试信息,还需要在 build/conf/local.conf 中设置 PACKAGE_DEBUG_SPLIT_STYLE:

PACKAGE_DEBUG_SPLIT_STYLE = 'debug-file-directory'