Max*_*xVT 6 trace ftrace linux-kernel
目标是检查任何进程传递给特定系统调用(例如exec,open等)的参数.
从官方文档中,没有描述记录函数参数的能力(主要看"函数"跟踪器,因为我不需要图形).
如果我能在ftrace的框架内实际做到这一点,我想确保我不会忽视某些东西并浪费时间使用更具异国情调的东西.
我对 的经验有限ftrace
,尽管我已将其用于函数堆栈跟踪和延迟问题。(有更多经验的人可能会建议)使用trace-cmd
和 的体验几乎相同kernelshark
。
但是,如果您想在内核空间中跟踪系统调用、函数参数、内核 API 和返回值等,更好的选择是使用systemtap
. 它有一个广泛的示例和文档列表,这对函数调用跟踪、传递的参数值等很有用。您可能想查看一些示例并根据您的要求调整它们。查看general/para-callgraph-verbose.stp
和process/sleeptime.stp
”
general/para-callgraph-verbose.stp - 带有详细参数关键字的调用图跟踪:TRACE CALLGRAPH
打印定时的每线程微秒定时调用图,并带有打印精美的函数参数和返回值。第一个参数命名要跟踪的函数探测点。可选的第二个参数命名触发器函数的探测点,它的作用是仅对当前线程嵌套在触发器中时发生的那些函数启用跟踪。
stap para-callgraph-verbose.stp 'kernel.function("*@fs/proc*.c")' \
'kernel.function("vfs_read")' -c "cat /proc/sys/vm/* || true"
Run Code Online (Sandbox Code Playgroud)
process/strace.stp - 跟踪系统调用关键字:_BEST PROCESS SYSCALL
当应用于单个进程或层次结构(通过 -c/-x)或整个系统(没有 -c/-x)时,该脚本松散地模拟了 strace。可以使用 -G 设置一些输出配置参数。
stap strace.stp -c "sleep 1"
Run Code Online (Sandbox Code Playgroud)
”
请注意,您需要安装正确版本的debug kernel
和kernel-devel
rpms/debstap
才能正常工作。为此,只需stap-prep
根据您使用的风格使用和安装显示的依赖项。
归档时间: |
|
查看次数: |
2521 次 |
最近记录: |