android - Linux内核的ftrace输出格式

标签 android linux kernel trace ftrace

我在几个不同的设备上使用 Android 上的 ftrace,但我注意到它们之间的输出格式不同。在某些情况下,包含当前进程的 TGID,而在其他情况下则不包含。

TGID 在我使用 ftrace 的当前应用程序中非常有用,我想知道如何启用它。我知道 sysfs 文件“/sys/kernel/debug/tracing/options/print-tgid”,但不幸的是,这在我的设备上不可用。是否有任何内核选项或 ftrace 句柄可用于将 TGID 添加到 ftrace 输出格式?

#                              _-----=> irqs-off
#                             / _----=> need-resched
#                            | / _---=> hardirq/softirq
#                            || / _--=> preempt-depth
#                            ||| /     delay
#           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |       |   ||||       |         |
#                    ^^ (no tgid...)

对比

#                                      _-----=> irqs-off
#                                     / _----=> need-resched
#                                    | / _---=> hardirq/softirq
#                                    || / _--=> preempt-depth
#                                    ||| /     delay
#           TASK-PID    TGID   CPU#  ||||    TIMESTAMP  FUNCTION
#              | |        |      |   ||||       |         |
#                        ^^^(tgid is available in this column!)

最佳答案

我指出了添加此功能的位置。只有 linux 内核的 Android 分支的非常新版本才有可用的 tgid 信息,并且没有 vanilla Linux 内核版本(我知道)。如果您应用来自 https://android.googlesource.com/kernel/common/+/d34f20303f234fb6eae16548055766916cae7c2b%5E!/ 的补丁到内核​​源代码树并构建,你应该被设置。您可能需要手动应用补丁中的枚举,但添加后您应该进行设置。

关于android - Linux内核的ftrace输出格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26590513/

相关文章:

javascript - Android 混合应用程序给我 "Uncaught SyntaxError: Unexpected identifier",源 : (1)

java - 无需打开键盘即可更改多行 EditText 光标位置

Linux 内核错误

linux - 结束 Linux block 设备驱动程序中的 I/O 上下文

android - 将套接字连接到设备上的本地地址

java - 强制关闭 onTextChanged

linux - 为什么程序头段虚拟地址是0x40004000?

linux - 需要帮助在 csv 文件中创建新列

linux - 列出目录中每个文件的前几行

c++ - 为什么我的驱动程序只读取字符串的一部分?