搜索

10.2.2. 跟踪所选库调用

download PDF

要只跟踪一组所选库调用,请使用 -e 命令行选项运行 ltrace 工具:

$ scl enable devtoolset-11 'ltrace -e expression program argument...'

使用规则链替换 expression,以指定要跟踪的库调用。规则可由标识符号名称的模式组成(如 mallocfree)和标识库 SONAME(如 libc.so)的模式。例如,要跟踪调用 mallocfree 功能,但要省略 libc 库所完成的那些功能:

$ scl enable devtoolset-11 'ltrace -e malloc+free-@libc.so* program'

例 10.2. 跟踪所选库调用

考虑 ls 命令。在此程序上运行 ltrace 程序,只跟踪 opendirreaddir、和 closedir 功能调用:

$ scl enable devtoolset-11 'ltrace -e opendir+readdir+closedir ls'
ls->opendir(".")     = { 3 }
ls->readdir({ 3 })   = { 61533, "." }
ls->readdir({ 3 })   = { 131, ".." }
ls->readdir({ 3 })   = { 67185100, "BUILDROOT" }
ls->readdir({ 3 })   = { 202390772, "SOURCES" }
ls->readdir({ 3 })   = { 60249, "SPECS" }
ls->readdir({ 3 })   = { 67130110, "BUILD" }
ls->readdir({ 3 })   = { 136599168, "RPMS" }
ls->readdir({ 3 })   = { 202383274, "SRPMS" }
ls->readdir({ 3 })   = nil
ls->closedir({ 3 })  = 0
BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS
+++ exited (status 0) +++

有关可用过滤表达式的详细描述,请参阅 ltrace(1)手册页。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.