Table of Contents

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