|author||Matthew Khouzam <email@example.com>||Thu Jul 08 10:47:21 2021 -0400|
|committer||Matthew Khouzam <firstname.lastname@example.org>||Wed Jul 28 16:00:30 2021 -0400|
ctf.core: Use secureRandom for reaper Using pseudorandom number generators (PRNGs) is security-sensitive. For example, it has led in the past to the following vulnerabilities: * CVE-2013-6386 * CVE-2006-3419 * CVE-2008-4102 When software generates predictable values in a context requiring unpredictability, it may be possible for an attacker to guess the next value that will be generated, and use this guess to impersonate another user or access sensitive information. As the java.util.Random class relies on a pseudorandom number generator, this class and relating java.lang.Math.random() method should not be used for security-critical applications or for protecting sensitive data. In such context, the java.security.SecureRandom class which relies on a cryptographically strong random number generator (RNG) should be used in place. Change-Id: I01b6165186a10f90e378c507b47d341cfa50608c Signed-off-by: Matthew Khouzam <email@example.com> Reviewed-on: https://git.eclipse.org/r/c/tracecompass/org.eclipse.tracecompass/+/182898 Tested-by: Trace Compass Bot <firstname.lastname@example.org> Tested-by: Patrick Tasse <email@example.com> Reviewed-by: Patrick Tasse <firstname.lastname@example.org>
This source tree contains the source code for the Trace Compass plugins for Eclipse.
The plugins are categorized as follows:
analysis/ | Generic extensions to the base framework btf/ | Best Trace Format (BTF) integration common/ | Generic utilities that can be used by other plugins ctf/ | Common Trace Format (CTF) reader library doc/ | Documentation and code examples gdbtrace/ | Support for reading and viewing GDB traces lttng/ | LTTng integration pcap/ | libpcap integration rcp/ | Code specific to the RCP version releng/ | Releng-related plugins statesystem/ | State System library tmf/ | Core framework
components.svg file for a diagram showing the dependencies between the different components.
To set up the environment to build Trace Compass from within Eclipse, see this wiki page: http://wiki.eclipse.org/Trace_Compass/Development_Environment_Setup
The Maven project build requires version 3.3 or later. It can be downloaded from http://maven.apache.org or from the package management system of your distro.
To build the project manually using Maven, simply run the following command from the top-level directory:
mvn clean install
The default command will compile and run the unit tests. Running the tests can take some time, to skip them you can append
-Dmaven.test.skip=true to the
mvn clean install -Dmaven.test.skip=true
Stand-alone application (RCP) packages will be placed in
The p2 update site, used for installation as plugins inside Eclipse, will be placed in
To generate the javadoc from the Trace Compass source code, run the following command from the top-level directory:
mvn clean package javadoc:aggregate
The javadoc html files will be under
Trace Compass can be traced by doing the following in the launch configuration:
Additionally the folder the trace is being written to (default is
home/.tracecompass/logs) needs to be created in advance. After running Trace Compass, a
trace_n.json will be created in the tracing folder. It needs to be converted to true json, so use the
jsonify.sh script in the root directory to convert it. Then it can be loaded into Trace Compass, if the Trace Event format is installed from the incubator, or from a web browser such as Chromium.
The performance impact is low enough as long as the log level is greater than “FINEST”.
NOTE: thread 1 is always the UI thread for Trace Compass. Also, the thread numbers are the JVM threads and do not correspond necessarily to Process IDs.
NOTE: if you want to build the RCP with older platforms than 4.12 you need to copy the legacy
cp rcp/org.eclipse.tracecompass.rcp.product/legacy/tracing.product rcp/org.eclipse.tracecompass.rcp.product/
The following Maven profiles and properties are defined in the build system. You can set them by using
-P[profile name] and
-D[property name]=[value] in
Defines which target to use. This is used to build against various versions of the Eclipse platform. Available ones are in
releng/org.eclipse.tracecompass.target. The default is usually the latest stable platform. To use the staging target for example, use
Skips the automated core tests. Not required when using
-DskipTests=true , which already skips all the tests.
Skips the short UI integration tests. Not required when using
-DskipTests=true, which already skips all the tests.
Skips the long UI integration tests. Not required when using
-DskipTests=true, which already skips all the tests.
Skips building the RCP archives and related deployment targets. Only works in conjunction with
-Dskip-tc-long-ui-tests, due to a limitation in Maven.
Re-compiles the CTF grammar files. This should be enabled if you modify the
.g files in the
Runs a test suite present in
releng/org.eclipse.tracecompass.alltests. The test suite to run has to be defined by
-DcustomTestSuite=[name], for example
Mainly for use on build servers. Copies the generated RCP archives, as well as the RCP-specific update site, to the paths specified by
Mainly for use on build servers. Copies the standard update site (for the Eclipse plugin installation) to the destination specified by
Mainly for use on build servers. Signs all the generated update sites using the Eclipse signing server.
Mainly for use on build servers. Copies the generated HTML documentation to the destination specified by
-DdocDestination=/absolute/path/to/destination. Some directories may need to already exist at the destination (or Maven will throw related errors).