Documentation Home
> Programming Utilities Guide
Programming Utilities Guide
Book Information
Preface
Chapter 1 Tracing Program Execution With the TNF Utilities
Defining Types of Users
Using Existing Probe Points
Debugging a Program
Inserting Probe Points in a Library
Tracing Kernel Execution
How TNF Works
Inserting Probe Points
Starting prex
Starting Your Program With prex
Attaching prex to a Running Process
Linking With libtnfprobe
Halting and Continuing prex
Command Line Options for prex
Running prex
Components of the prex Command
Attributes
Grammar for Matching Probes
Reserved Words
Tracing, Enabling, and Connecting
Controlling prex From a Script
A Sample C Program
A Sample prex Session
Reading the Trace File
Converting the Binary File to Readable Format
Reading the tnfdump File
Kernel Tracing
Controlling Kernel Tracing (prex)
Buffer Allocation
Selecting and Enabling Probes
Process Filtering
Enabling and Disabling Tracing
Resetting Kernel Tracing
Extracting Kernel Trace Data (tnfxtract)
Examining Kernel Trace Data (tnfdump)
Available Kernel Probes (tnf_probes)
Thread Probes
System Call Probes
VM Probes
Page Faults
Page I/O
Page Daemon
Swapper
Local I/O Probes
Other Probes
Shell Script for Kernel Tracing
Advanced Topics
Inserting Probe Points
Using the TNF_PROBE Macros
TNF_PROBE_1 Through TNF_PROBE_5
Example--Timing Functions
Defining User Types for Probe Points
Examples--Defining TNF Types
Performance Issues
/proc
dlopen() and dlclose() and History
Signals
Failure of Event-Writing Operations
Target Executing a fork() or exec()
Chapter 2 Lexical Analysis
Internationalization
Generating a Lexical Analyzer Program
Writing lex Source
The Fundamentals of lex Rules
Regular Expressions
Operators
Actions
Advanced lex Features
Some Special Features
lex Routines
Definitions
Start Conditions
User Routines
C++ Mangled Symbols
Using lex and yacc Together
Automaton
Summary of Source Format
Chapter 3 yacc -- A Compiler Compiler
Internationalization
Basic Specifications
Actions
Lexical Analysis
Parser Operation
Ambiguity and Conflicts
Precedence
Error Handling
The yacc Environment
Hints for Preparing Specifications
Input Style
Left Recursion
C++ Mangled Symbols
Lexical Tie-Ins
Reserved Words
Advanced Topics
Simulating error and accept in Actions
Accessing Values in Enclosing Rules
Support for Arbitrary Value Types
yacc Input Syntax
Examples
A Simple Example
An Advanced Example
Chapter 4 make Utility
Dependency Checking: make vs. Shell Scripts
Writing a Simple Makefile
Basic Use of Implicit Rules
Processing Dependencies
Null Rules
Special Targets
Unknown Targets
Duplicate Targets
Reserved make Words
Running Commands Silently
Automatic Retrieval of SCCS Files
Suppressing SCCS Retrieval
Passing Parameters: Simple make Macros
.KEEP_STATE and Command Dependency Checking
Suppressing or Forcing Command Dependency Checking for Selected Lines
State File
.KEEP_STATE and Hidden Dependencies
.INIT and Hidden Dependencies
Displaying Information About a make Run
Using make to Compile Programs
Simple Makefile Example
Using make's Predefined Macros
Using Implicit Rules to Simplify a Makefile: Suffix Rules
When to Use Explicit Target Entries vs. Implicit Rules
Implicit Rules and Dynamic Macros
Dynamic Macro Modifiers
Dynamic Macros and the Dependency List: Delayed Macro References
Dependency List Read Twice
Rules Evaluated Once
No Transitive Closure for Suffix Rules
Adding Suffix Rules
Pattern-Matching Rules: An Alternative to Suffix Rules
make's Default Suffix Rules and Predefined Macros
Building Object Libraries
Libraries, Members, and Symbols
Library Members and Dependency Checking
Libraries and the $% Dynamic Macro
.PRECIOUS: Preserving Libraries Against Removal due to Interrupts
Using make to Maintain Libraries and Programs
More about Macros
Embedded Macro References
Suffix Replacement in Macro References
Using lint with make
Linking with System-Supplied Libraries
Compiling Programs for Debugging and Profiling
Conditional Macro Definitions
Compiling Debugging and Profiling Variants
Maintaining Separate Program and Library Variants
Pattern-Replacement Macro References
Makefile for a Program with Separate Variants
Makefile for a Library with Separate Variants
Maintaining a Directory of Header Files
Compiling and Linking with Your Own Libraries
Nested make Commands
Forcing a Nested make Command to Run
The MAKEFLAGS Macro
Passing Parameters to Nested make Commands
Compiling Other Source Files
Compiling and Linking a C Program with Assembly Language Routines
Compiling lex and yacc Sources
Specifying Target Groups with the + Sign
Maintaining Shell Scripts with make and SCCS
Running Tests with make
Escaped References to a Shell Variable
Shell Command Substitutions
Command-Replacement Macro References
Command-Replacement Macro Assignment
Maintaining Software Projects
Organizing a Project for Ease of Maintenance
Using include Makefiles
Installing Finished Programs and Libraries
Building the Entire Project
Maintaining Directory Hierarchies with the Recursive Makefiles
Maintaining Recursive Targets
Maintaining a Large Library as a Hierarchy of Subsidiaries
Reporting Hidden Dependencies to make
make Enhancements Summary
Default Makefile
The State File .make.state
Hidden-Dependency Checking
Command-Dependency Checking
Automatic Retrieval of SCCS Files
Tilde Rules Superseded
Pattern-Matching Rules
Pattern-Replacement Macro References
New Options
Support for C++ and Modula-2
Naming Scheme for Predefined Macros
New Special-Purpose Targets
New Implicit lint Rule
Macro Processing Changes
Macros: Definition, Substitution, and Suffix Replacement
New Append Operator
Conditional Macro Definitions
Patterns in Conditional Macros
Suffix Replacement Precedence
Nested Macro References
Cross-Compilation Macros
Shell Command Output in Macros
Improved ar Library Support
Target Groups
Incompatibilities with Previous Versions
The -d Option
Dynamic Macros
Tilde Rules
Target Names
Chapter 5 SCCS Source Code Control System
The sccs Command
The sccs create Command
Basic sccs Subcommands
Deltas and Versions
SIDs
ID Keywords
sccs Subcommands
Checking Files In and Out
Checking Out a File for Editing: sccs edit
Checking in a New Version: sccs delta
Retrieving a Version: sccs get
Reviewing Pending Changes: sccs diffs
Deleting Pending Changes: sccs unedit
Combining delta and get: sccs delget
Combining delta and edit: sccs deledit
Retrieving a Version by SID: sccs get -r
Retrieving a Version by Date and Time: sccs get -c
Repairing a Writable Copy: sccs get -k -G
Incorporating Version-Dependent Information by Using ID Keywords
Making Inquiries
Seeing Which Version Has Been Retrieved: The what Command
Determining the Most Recent Version: sccs get -g
Determining Who Has a File Checked Out: sccs info
Displaying Delta Comments: sccs prt
Updating a Delta Comment: sccs cdc
Comparing Checked-In Versions: sccs sccsdiff
Displaying the Entire History: sccs get -m -p
Creating Reports: sccs prs -d
Deleting Committed Changes
Replacing a Delta: sccs fix
Removing a Delta: sccs rmdel
Reverting to an Earlier Version
Excluding Deltas from a Retrieved Version
Combining Versions: sccs comb
Version Control for Binary Files
Maintaining Source Directories
Duplicate Source Directories
SCCS and make
Keeping SIDs Consistent Across Files
Starting a New Release
Temporary Files Used by SCCS
Branches
Using Branches
Creating a Branch Delta
Retrieving Versions from Branch Deltas
Merging a Branch Back into the Main Trunk
Administering SCCS Files
Interpreting Error Messages: sccs help
Altering History File Defaults: sccs admin
Validating the History File
Restoring the History File
Reference Tables
Chapter 6 m4 Macro Processor
Overview
m4 Macros
Defining Macros
Quoting
Arguments
Arithmetic Built-Ins
File Inclusion
Diversions
System Commands
Conditional Testing
String Manipulation
Printing
Summary of Built-In m4 Macros
Appendix A System V make
Basic Features
Description Files and Substitutions
Comments
Continuation Lines
Macro Definitions
General Form
Dependency Information
Executable Commands
Extensions of $*, $@, and $<
Output Translations
Recursive Makefiles
Suffixes and Transformation Rules
Implicit Rules
Archive Libraries
Source Code Control System (SCCS) Filenames
The Null Suffix
Included Files
SCCS Makefiles
Dynamic-Dependency Parameters
Command Usage
The make Command
Environment Variables
Suggestions and Warnings
Internal Rules
Special Rules
Single-Suffix Rules
Double-Suffix Rules
Index
A
B
C
D
E
F
G
H
I
K
L
M
N
O
P
R
S
T
U
V
W
X
Y
Z
© 2010, Oracle Corporation and/or its affiliates