JavaScript is required to for searching.
跳过导航链接
退出打印视图
DTrace 用户指南     Oracle Solaris 10 8/11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  简介

2.  DTrace 基础知识

列出探测器

在 DTrace 中指定探测器

启用探测器

DTrace 操作基础知识

数据记录操作

trace() 函数

tracemem() 函数

printf() 函数

printa() 函数

stack() 函数

ustack() 函数

jstack() 函数

破坏性操作

处理破坏性操作

stop() 函数

raise() 函数

copyout() 函数

copyoutstr() 函数

system() 函数

内核破坏性操作

breakpoint() 函数

panic() 函数

chill() 函数

DTrace 聚合

DTrace 聚合语法

3.  使用 D 语言编写脚本

4.  使用 DTrace

索引

启用探测器

您可以使用 dtrace 命令在指定探测器但不指定 -l 选项的情况下启用探测器。如果没有进一步的指令,则在指定的探测器触发时,DTrace 执行缺省的操作。缺省的探测器操作仅指明指定的探测器已触发,不记录任何其他数据。下面的代码示例启用 sd 模块中的每个探测器。

示例 2-6 按模块启用探测器

# dtrace -m sd
CPU     ID                     FUNCTION:NAME
  0  17329           sd_media_watch_cb:entry
  0  17330          sd_media_watch_cb:return
  0  17167                      sdinfo:entry
  0  17168                     sdinfo:return
  0  17151                  sdstrategy:entry
  0  17152                 sdstrategy:return
  0  17661          ddi_xbuf_qstrategy:entry
  0  17662         ddi_xbuf_qstrategy:return
  0  17649                xbuf_iostart:entry
  0  17341            sd_xbuf_strategy:entry
  0  17385                sd_xbuf_init:entry
  0  17386               sd_xbuf_init:return
  0  17342           sd_xbuf_strategy:return
  0  17177     sd_mapblockaddr_iostart:entry
  0  17178    sd_mapblockaddr_iostart:return
  0  17179               sd_pm_iostart:entry
  0  17365                 sd_pm_entry:entry
  0  17366                sd_pm_entry:return
  0  17180              sd_pm_iostart:return
  0  17181             sd_core_iostart:entry
  0  17407         sd_add_buf_to_waitq:entry
...

本示例中的输出表明,缺省操作显示触发探测器的 CPU、由 DTrace 分配的整数探测器 ID、触发探测器的函数,以及探测器名称。

示例 2-7 按提供器启用探测器

# dtrace -P syscall
dtrace: description 'syscall' matched 452 probes
CPU     ID                     FUNCTION:NAME
  0     99                      ioctl:return
  0     98                       ioctl:entry
  0     99                      ioctl:return
  0     98                       ioctl:entry
  0     99                      ioctl:return
  0    234                   sysconfig:entry
  0    235                  sysconfig:return
  0    234                   sysconfig:entry
  0    235                  sysconfig:return
  0    168                   sigaction:entry
  0    169                  sigaction:return
  0    168                   sigaction:entry
  0    169                  sigaction:return
  0     98                       ioctl:entry
  0     99                      ioctl:return
  0    234                   sysconfig:entry
  0    235                  sysconfig:return
  0     38                         brk:entry
  0     39                        brk:return
...

示例 2-8 按名称启用探测器

# dtrace -n zfod
dtrace: description 'zfod' matched 3 probes
CPU     ID                     FUNCTION:NAME
  0   4080                    anon_zero:zfod
  0   4080                    anon_zero:zfod
^C

示例 2-9 按完全指定的名称启用探测器

# dtrace -n clock:entry
dtrace: description 'clock:entry' matched 1 probe
CPU     ID                     FUNCTION:NAME
  0   4198                       clock:entry
^C