ktrace.1

KTRACE(1)

KTRACE(1)

FreeBSD General Commands Manual

KTRACE(1)

ktrace

启用内核进程跟踪

ktrace [-aCcdi] [-f trfile] [-g pgrp | -p pid] [-t trstr] ktrace [-adi] [-f trfile] [-t trstr] command

ktrace 实用程序为指定进程启用内核跟踪日志记录。 内核跟踪数据记录到文件 ktrace.out 。 跟踪的内核操作包括系统调用、名称转换、信号处理和 I/O 。

在进程上启用跟踪后,将记录跟踪数据,直到进程退出或跟踪点被清除。 一个被追踪的进程可以快速生成海量的日志数据;强烈建议用户在尝试跟踪进程之前记住如何禁用跟踪。 以下命令足以禁用对所有用户拥有的进程的跟踪,如果由 root 执行,所有进程:

$ ktrace -C

跟踪文件不是人类可读的;使用 kdump(1) 对其进行解码。

该实用程序只能与使用内核配置文件中的 “KTRACE” 选项构建的内核一起使用。

选项包括:

-a

追加到跟踪文件而不是重新创建它。

-C

禁用对所有用户拥有的进程的跟踪,如果由 root 执行,则禁用系统中的所有进程。

-c

清除与给定文件或进程关联的指定跟踪点。

-d

后人; 对指定进程的所有当前子进程执行操作。 另请参见 -i 选项。

-f trfile

将跟踪记录记录到 trfile 而不是 ktrace.out 。

-g pgid

对进程组中的所有进程启用(禁用)跟踪(只允许使用一个 -g 标志)。

-i

继承; 将跟踪标志传递给指定进程的所有未来子进程。 另请参见 -d 选项。

-p pid

启用(禁用)对指定进程 ID 的跟踪(只允许一个 -p 标志)。

-t trstr

指定要启用或禁用的跟踪点列表,每个字母一个。 如果未指定显式列表,则使用默认的跟踪点集。

支持以下跟踪点:

c

跟踪系统调用

f

跟踪页面错误

i

跟踪 I/O

n

追踪名字翻译

p

跟踪能力检查失败

s

跟踪信号处理

t

追踪各种结构

u

utrace(2) 生成的用户空间跟踪

w

上下文切换

y

跟踪 sysctl(3) 请求

+

跟踪默认跟踪点集 - c, i, n, p, s, t, u, y

command

使用指定的跟踪标志执行 command 。

-p, -g, 和 command 选项是互斥的。

运行 "make", 然后跟踪它和任何子进程:

$ ktrace -i make

跟踪进程 id 34 的所有内核操作:

$ ktrace -p 34

跟踪进程组 15 中进程的所有内核操作,并将跟踪标志传递给所有当前和未来的子进程:

$ ktrace -idg 15

禁用进程 65 的所有跟踪:

$ ktrace -cp 65

禁用进程 70 和所有当前子进程上的跟踪信号:

$ ktrace -t s -cdp 70

在进程 67 上启用 I/O 跟踪:

$ ktrace -ti -p 67

禁用对文件 "tracedata" 的所有跟踪:

$ ktrace -c -f tracedata

禁用所有用户拥有的进程的跟踪:

$ ktrace -C

dtrace(1), kdump(1), truss(1), ktrace(2), utrace(2)

ktrace 命令出现在 4.4BSD 中。

仅当 trfile 是常规文件时才有效。

August 26, 2019

FreeBSD 13.1-RELEASE

最后更新于

FreeBSD 中文社区