Documentation Home
> Solaris Dynamic Tracing Guide
Solaris Dynamic Tracing Guide
Book Information
Index
Numbers and Symbols
A
B
C
D
E
F
H
I
K
L
M
O
P
Q
R
S
T
U
V
W
Preface
Chapter 1 Introduction
Getting Started
Providers and Probes
Compilation and Instrumentation
Variables and Arithmetic Expressions
Predicates
Output Formatting
Arrays
External Symbols and Types
Chapter 2 Types, Operators, and Expressions
Identifier Names and Keywords
Data Types and Sizes
Constants
Arithmetic Operators
Relational Operators
Logical Operators
Bitwise Operators
Assignment Operators
Increment and Decrement Operators
Conditional Expressions
Type Conversions
Precedence
Chapter 3 Variables
Scalar Variables
Associative Arrays
Thread-Local Variables
Clause-Local Variables
Built-in Variables
External Variables
Chapter 4 D Program Structure
Probe Clauses and Declarations
Probe Descriptions
Predicates
Actions
Use of the C Preprocessor
Chapter 5 Pointers and Arrays
Pointers and Addresses
Pointer Safety
Array Declarations and Storage
Pointer and Array Relationship
Pointer Arithmetic
Generic Pointers
Multi-Dimensional Arrays
Pointers to DTrace Objects
Pointers and Address Spaces
Chapter 6 Strings
String Representation
String Constants
String Assignment
String Conversion
String Comparison
Chapter 7 Structs and Unions
Structs
Pointers to Structs
Unions
Member Sizes and Offsets
Bit-Fields
Chapter 8 Type and Constant Definitions
Typedef
Enumerations
Inlines
Type Namespaces
Chapter 9 Aggregations
Aggregating Functions
Aggregations
Printing Aggregations
Data Normalization
Clearing Aggregations
Truncating aggregations
Minimizing Drops
Chapter 10 Actions and Subroutines
Actions
Default Action
Data Recording Actions
trace()
tracemem()
printf()
printa()
stack()
ustack()
jstack()
Destructive Actions
Process Destructive Actions
stop()
raise()
copyout()
copyoutstr()
system()
Kernel Destructive Actions
breakpoint()
panic()
chill()
Special Actions
Speculative Actions
exit()
Subroutines
alloca()
basename()
bcopy()
cleanpath()
copyin()
copyinstr()
copyinto()
dirname()
msgdsize()
msgsize()
mutex_owned()
mutex_owner()
mutex_type_adaptive()
progenyof()
rand()
rw_iswriter()
rw_write_held()
speculation()
strjoin()
strlen()
Chapter 11 Buffers and Buffering
Principal Buffers
Principal Buffer Policies
switch Policy
fill Policy
fill Policy and END Probes
ring Policy
Other Buffers
Buffer Sizes
Buffer Resizing Policy
Chapter 12 Output Formatting
printf()
Conversion Specifications
Flag Specifiers
Width and Precision Specifiers
Size Prefixes
Conversion Formats
printa()
trace() Default Format
Chapter 13 Speculative Tracing
Speculation Interfaces
Creating a Speculation
Using a Speculation
Committing a Speculation
Discarding a Speculation
Speculation Example
Speculation Options and Tuning
Chapter 14 dtrace(1M) Utility
Description
Options
Operands
Exit Status
Chapter 15 Scripting
Interpreter Files
Macro Variables
Macro Arguments
Target Process ID
Chapter 16 Options and Tunables
Consumer Options
Modifying Options
Chapter 17 dtrace Provider
BEGIN Probe
The END Probe
ERROR Probe
Stability
Chapter 18 lockstat Provider
Overview
Adaptive Lock Probes
Spin Lock Probes
Thread Locks
Readers/Writer Lock Probes
Stability
Chapter 19 profile Provider
profile-n probes
tick-n probes
Arguments
Timer Resolution
Probe Creation
Stability
Chapter 20 fbt Provider
Probes
Probe arguments
entry probes
return probes
Examples
Tail-call Optimization
Assembly Functions
Instruction Set Limitations
x86 Limitations
SPARC Limitations
Breakpoint Interaction
Module Loading
Stability
Chapter 21 syscall Provider
Probes
System Call Anachronisms
Subcoded System Calls
Large File System Calls
Private System Calls
Arguments
Stability
Chapter 22 sdt Provider
Probes
Examples
Creating SDT Probes
Declaring Probes
Probe Arguments
Stability
Chapter 23 sysinfo Provider
Probes
Arguments
Example
Stability
Chapter 24 vminfo Provider
Probes
Arguments
Example
Stability
Chapter 25 proc Provider
Probes
Arguments
lwpsinfo_t
psinfo_t
Examples
exec
start and exit
lwp-start and lwp-exit
signal-send
Stability
Chapter 26 sched Provider
Probes
Arguments
cpuinfo_t
Examples
on-cpu and off-cpu
enqueue and dequeue
sleep and wakeup
preempt, remain-cpu
change-pri
tick
Stability
Chapter 27 io Provider
Probes
Arguments
bufinfo_t structure
devinfo_t
fileinfo_t
Examples
Stability
Chapter 28 mib Provider
Probes
Arguments
Stability
Chapter 29 fpuinfo Provider
Probes
Arguments
Stability
Chapter 30 pid Provider
Naming pid Probes
Function Boundary Probes
entry Probes
return Probes
Function Offset Probes
Stability
Chapter 31 plockstat Provider
Overview
Mutex Probes
Reader/Writer Lock Probes
Stability
Chapter 32 fasttrap Provider
Probes
Stability
Chapter 33 User Process Tracing
copyin() and copyinstr() Subroutines
Avoiding Errors
Eliminating dtrace(1M) Interference
syscall Provider
ustack() Action
uregs[] Array
pid Provider
User Function Boundary Tracing
Tracing Arbitrary Instructions
Chapter 34 Statically Defined Tracing for User Applications
Choosing the Probe Points
Adding Probes to an Application
Defining Providers and Probes
Adding Probes to Application Code
Building Applications with Probes
Chapter 35 Security
Privileges
Privileged Use of DTrace
dtrace_proc Privilege
dtrace_user Privilege
dtrace_kernel Privilege
Super User Privileges
Chapter 36 Anonymous Tracing
Anonymous Enablings
Claiming Anonymous State
Anonymous Tracing Examples
Chapter 37 Postmortem Tracing
Displaying DTrace Consumers
Displaying Trace Data
Chapter 38 Performance Considerations
Limit Enabled Probes
Use Aggregations
Use Cacheable Predicates
Chapter 39 Stability
Stability Levels
Dependency Classes
Interface Attributes
Stability Computations and Reports
Stability Enforcement
Chapter 40 Translators
Translator Declarations
Translate Operator
Process Model Translators
Stable Translations
Chapter 41 Versioning
Versions and Releases
Versioning Options
Provider Versioning
Glossary
© 2010, Oracle Corporation and/or its affiliates