Trace Compass Developer Guide |
|
|
|
|
|
Introduction |
Table of Contents
-
Table of Contents
-
Introduction
-
Implementing a New Trace Type
-
Event Aspects
-
Base and custom aspects
-
Creating event aspects programmatically
-
Optional Trace Type Attributes
-
Default Editor
-
Events Table Type
-
Perspective
-
Other Considerations
-
Collapsing of repetitive events
-
Best Practices
-
An Example: Nexus-lite parser
-
Description of the file
-
NexusLite Plug-in
-
Trace Event
-
Trace Reader
-
Trace Context
-
Trace Location
-
The ''org.eclipse.linuxtools.tmf.core.tracetype'' and ''org.eclipse.linuxtools.tmf.ui.tracetypeui'' plug-in extension points
-
View Tutorial
-
Prerequisites
-
Creating an Eclipse UI Plug-in
-
Creating a View
-
Implementing a view
-
Adding an Empty Chart
-
Signal Handling
-
Requesting Data
-
Transferring Data to the Chart
-
Adjusting the Range
-
Formatting the Time Stamps
-
Pin feature
-
TMF Built-in Views and Viewers
-
Timing Analysis Views and Viewers
-
Component Interaction
-
Sending Signals
-
Receiving Signals
-
Signal Throttling
-
Ignoring inbound/outbound signals
-
Signal Reference
-
TmfStartSynchSignal
-
TmfEndSynchSignal
-
TmfTraceOpenedSignal
-
TmfTraceSelectedSignal
-
TmfTraceClosedSignal
-
TmfTraceRangeUpdatedSignal
-
TmfTraceUpdatedSignal
-
TmfSelectionRangeUpdatedSignal
-
TmfWindowRangeUpdatedSignal
-
TmfEventFilterAppliedSignal
-
TmfEventSearchAppliedSignal
-
TmfTimestampFormatUpdateSignal
-
TmfStatsUpdatedSignal
-
TmfPacketStreamSelected
-
TmfStartAnalysisSignal
-
TmfCpuSelectedSignal
-
TmfThreadSelectedSignal
-
TmfSymbolProviderUpdatedSignal
-
TmfTraceSynchronizedSignal
-
TmfMarkerEventSourceUpdatedSignal
-
Debugging
-
Generic State System
-
Introduction
-
High-level components
-
Definitions
-
Attribute
-
Attribute Tree
-
Quark
-
State value
-
State change
-
State interval
-
State history
-
Construction phase
-
Queries
-
Full queries
-
Single queries
-
2D queries
-
Relevant interfaces/classes
-
Main classes in org.eclipse.tracecompass.tmf.core.statesystem
-
ITmfStateProvider / AbstractTmfStateProvider
-
TmfStateSystemFactory
-
ITmfStateSystem
-
getQuarkAbsolute()/getQuarkRelative()
-
optQuarkAbsolute()/optQuarkRelative()
-
getQuarks()
-
waitUntilBuilt()
-
queryFullState()
-
querySingleState()
-
ITmfStateSystemBuilder
-
getQuark*AndAdd()
-
modifyAttribute()
-
closeHistory()
-
Other relevant interfaces
-
ITmfStateValue
-
ITmfStateInterval
-
Exceptions
-
AttributeNotFoundException
-
StateValueTypeException
-
TimeRangeException
-
StateSystemDisposedException
-
Comparison of state system backends
-
Full history
-
Null history
-
In-memory history
-
Partial history
-
State System Operations
-
queryRangeMax()
-
queryRangeMin()
-
queryRangeAverage()
-
Code example
-
State Provider
-
Analysis module definition
-
Mipmap feature
-
AbstractTmfMipmapStateProvider
-
UML2 Sequence Diagram Framework
-
TMF UML2 Sequence Diagram Extensions
-
Management of the Extension Point
-
Sequence Diagram View
-
Supported Widgets
-
Zooming
-
Printing
-
Key Bindings
-
Preferences
-
Callback hooks
-
Tutorial
-
Prerequisites
-
Creating an Eclipse UI Plug-in
-
Creating a Sequence Diagram View
-
Defining the uml2SDLoader Extension
-
Implementing the Loader Class
-
Adding time information
-
Default Coolbar and Menu Items
-
Implementing Optional Callbacks
-
Using the Paging Provider Interface
-
Using the Find Provider Interface
-
Using the Filter Provider Interface
-
Using the Extended Action Bar Provider Interface
-
Using the Properties Provider Interface
-
Using the Collapse Provider Interface
-
Using the Selection Provider Service
-
Printing a Sequence Diagram
-
Using one Sequence Diagram View with Multiple Loaders
-
Downloading the Tutorial
-
Integration of Tracing and Monitoring Framework with Sequence Diagram Framework
-
Reference Implementation
-
Used Sequence Diagram Features
-
Advanced paging
-
Basic finding
-
Basic filtering
-
Selection Service
-
Used TMF Features
-
TMF Experiment and Trace for accessing traces
-
TMF Event Request Framework
-
TMF Signal Framework
-
Supported Traces
-
Trace Format
-
How to use the Reference Implementation
-
Extending the Reference Loader
-
CTF Parser
-
CTF Format
-
Metadata
-
Event Streams
-
Reading a trace
-
Seeking in a trace
-
Interfacing to TMF
-
CtfLocation
-
CtfTmfTrace
-
CtfIterator
-
CtfIteratorManager
-
CtfTmfContext
-
CtfTmfTimestamp
-
CtfTmfEvent
-
Other
-
Limitations
-
Event matching and trace synchronization
-
Event matching interfaces
-
Implementation details and how to extend it
-
ITmfEventMatching interface and derived classes
-
ITmfMatchEventDefinition interface and its derived classes
-
IMatchProcessingUnit interface and derived classes
-
Code examples
-
Using network packets matching in an analysis
-
Match events from UST traces
-
Trace synchronization
-
Synchronization algorithm
-
Timestamp transforms
-
Todo
-
Analysis Framework
-
Creating a new module
-
Example
-
Available base analysis classes and interfaces
-
How it works
-
Telling TMF about the analysis module
-
Attaching outputs and views to the analysis module
-
Using the extension point to add outputs
-
Providing help for the module
-
Using analysis parameter providers
-
Example parameter provider
-
Register the parameter provider to the analysis
-
Providing requirements to analyses
-
Analysis requirement provider API
-
Requirement values
-
Example of providing requirements
-
TODO
-
TMF Remote API
-
Prerequisites
-
TmfRemoteConnectionFactory
-
Accessing the remote services manager (OSGI service)
-
Obtaining a IRemoteConnection
-
Creating an IRemoteConnection instance
-
Providing a connection factory
-
RemoteSystemProxy
-
Creating a RemoteSystemProxy
-
Opening the remote connection
-
Closing the remote connection
-
Disposing the remote connection
-
Checking the connection state
-
Retrieving the IRemoteConnection instance
-
Obtaining a command shell
-
Performance Tests
-
Add performance tests
-
Where
-
How
-
Run a performance test
-
ABC of performance testing
-
Determine what to test
-
Metrics descriptions and considerations
-
Network Tracing
-
Adding a protocol
-
Architecture
-
UDP Packet Structure
-
Creating the UDPPacket
-
Creating the UDPEndpoint
-
Registering the UDP protocol
-
Adding stream-based views
-
TODO
-
Markers
-
Trace-specific markers
-
View-specific markers
-
Virtual Machine Analysis
-
JUL Logging
-
Use a static logger for each class
-
Use a message supplier
-
Choose the appropriate log level
-
Log message format
-
Logging to populate Callstacks and Callgraph analyses
-
Logging to track Object life cycles
-
Logging to track Asynchronous operations
-
Analyzing Trace Compass Logs
-
XML schema extension
-
Extending the schema
-
Parsing the schema
-
Adding the extension point
-
OS Execution Graph Extension
-
Write the graph extension
-
Adding the extension point
-
Data Providers
-
Data provider types
-
XY
-
Time Graph
-
Data provider management
-
Data Provider Factories
-
Extension point
-
Experiments
-
Utilities
-
Views
-
XY views
-
Time Graph Views
|
|
|
|
|
Introduction |