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

文档信息

前言

1.  简介

2.  DTrace 基础知识

3.  使用 D 语言编写脚本

编写 D 脚本

可执行的 D 脚本

D 文本字符串

创建使用参数的 D 脚本

DTrace 内置变量

4.  使用 DTrace

索引

DTrace 内置变量

下面的列表包括了 DTrace 框架的所有内置变量。

int64_t arg0、...、arg9

探测器的前 10 个输入参数表示为原始的 64 位整数。如果传递到当前探测器的参数少于 10 个,则其余变量将返回 0。

args[]

为当前探测器键入的参数(如果存在)。可使用整数索引访问 args[] 数组,但将每个元素定义为与给定探测器参数对应的类型。例如,如果 args[] 数组被一个 read(2) 系统调用探测器引用,则 args[0]int 类型的,args[1]void * 类型的,args[2]size_t 类型的。

uintptr_t caller

进入当前探测器之前的当前线程的程序计数器位置。

chipid_t chip

当前物理芯片的 CPU 芯片标识符。有关更多信息,请参见《Solaris 动态跟踪指南》中的第 26  章 "sched 提供器"

processorid_t cpu

当前 CPU 的 CPU 标识符。有关更多信息,请参见《Solaris 动态跟踪指南》中的第 26  章 "sched 提供器"

cpuinfo_t *curcpu

当前 CPU 的 CPU 信息。有关更多信息,请参见《Solaris 动态跟踪指南》中的第 26  章 "sched 提供器"

lwpsinfo_t *curlwpsinfo

与当前线程关联的轻量进程 (lightweight process, LWP) 的 LWP 状态。此结构将在 proc(4) 手册页中详细说明。

psinfo_t *curpsinfo

与当前线程关联的进程的进程状态。proc(4) 手册页中更详细地介绍了此结构。

kthread_t *curthread

当前线程 (kthread_t) 的操作系统内核的内部数据结构的地址。kthread_t<sys/thread.h> 中定义。有关此变量和其他操作系统数据结构的更多信息,请参阅 Solaris Internals

string cwd

与当前线程关联的进程的当前工作目录名称。

uint_t epid

当前探测器的已启用的探测器 ID (enabled probe ID, EPID)。该整数唯一标识使用特定谓词和操作集合启用的特定探测器。

int errno

此线程最后一次执行的系统调用返回的错误值。

string execname

传递到 exec(2) 以执行当前进程的名称。

gid_t gid

当前进程的实际组 ID。

uint_t id

当前探测器的探测器 ID。此 ID 是当前探测器的系统范围内的唯一标识符,由 DTrace 发布,并列在 dtrace -l 的输出中。

uint_t ipl

在探测器触发时,当前 CPU 上的中断优先级别 (IPL)。有关 Solaris 操作系统内核中的中断级别和中断处理的更多信息,请参阅 Solaris Internals

lgrp_id_t lgrp

当前 CPU 所属的延迟组的地址组 ID。有关 DTrace 中的 CPU 管理的更多信息,请参见《Solaris 动态跟踪指南》中的第 26  章 "sched 提供器"。有关地址组的更多信息,请参见《编程接口指南》中的第 4  章 "地址组 API"

pid_t pid

当前进程的进程 ID。

pid_t ppid

当前进程的父进程 ID。

string probefunc

当前探测器说明的函数名称部分。

string probemod

当前探测器说明的模块名称部分。

string probename

当前探测器说明的名称部分。

string probeprov

当前探测器说明的提供器名称部分。

psetid_t pset

包含当前 CPU 的处理器集合的处理器集合 ID。有关更多信息,请参见《Solaris 动态跟踪指南》中的第 26  章 "sched 提供器"

string root

与当前线程关联的进程的 root 目录名称。

uint_t stackdepth

触发探测器时当前线程的栈帧深度。

id_t tid

当前线程的线程 ID。对于与用户进程关联的线程,该值等于对pthread_self(3C)的调用的结果。

uint64_t timestamp

纳秒时间标记计数器的当前值。此计数器从过去的任意时间点递增,仅用于相对计算。

uid_t uid

当前进程的实际用户 ID。

uint64_t uregs[]

触发探测器时当前线程的已保存的用户模式寄存器值。《Solaris 动态跟踪指南》中的第 33  章 "用户进程跟踪"中讨论了 uregs[] 数组的使用。

uint64_t vtimestamp

纳秒时间标记计数器的当前值。此计数器被虚拟化为当前进程已在某个 CPU 上运行的时间量。此计数器不包括在 DTrace 谓词和操作中花费的时间。此计数器从过去的任意时间点递增,仅用于相对时间计算。

uint64_t walltimestamp

自 1970 年 1 月 1 日 00:00 世界标准时间以来的当前纳秒数。