SUBDIRS = utils lib ctf-writer plugins
# Directories added to EXTRA_DIST will be recursively copied to the distribution.
-EXTRA_DIST = $(srcdir)/ctf-traces \
- $(srcdir)/debug-info-data \
+EXTRA_DIST = $(srcdir)/data \
bindings/python/bt2/.coveragerc
dist_check_SCRIPTS = \
export BABELTRACE_PYTHON_BT2_NO_TRACEBACK=1
export TEST_PLUGIN_PLUGINS_PATH="${BT_BUILD_PATH}/src/plugins"
export BABELTRACE_PLUGIN_PATH="${BT_BUILD_PATH}/src/plugins/ctf:${BT_BUILD_PATH}/src/plugins/utils:${BT_BUILD_PATH}/src/plugins/text"
-export TEST_CTF_TRACES_PATH="${BT_SRC_PATH}/tests/ctf-traces"
+export BT_CTF_TRACES_PATH
+
PYTHON_BUILD_DIR="${BT_BUILD_PATH}/src/bindings/python/bt2/build/build_lib"
TESTS_UTILS_PYTHON_DIR="${BT_SRC_PATH}/tests/utils/python"
TESTRUNNER_PY="${BT_SRC_PATH}/tests/utils/python/testrunner.py"
import os.path
-_TEST_CTF_TRACES_PATH = os.environ['TEST_CTF_TRACES_PATH']
-_3EVENTS_INTERSECT_TRACE_PATH = os.path.join(_TEST_CTF_TRACES_PATH,
+_BT_CTF_TRACES_PATH = os.environ['BT_CTF_TRACES_PATH']
+_3EVENTS_INTERSECT_TRACE_PATH = os.path.join(_BT_CTF_TRACES_PATH,
'intersection',
'3eventsintersect')
diag "Test the stream intersection feature"
diag "2 streams offsetted with 3 packets intersecting"
-test_intersect "${BT_CTF_TRACES}/intersection/3eventsintersect" 8 3
+test_intersect "${BT_CTF_TRACES_PATH}/intersection/3eventsintersect" 8 3
diag "2 streams offsetted with 3 packets intersecting (exchanged file names)"
-test_intersect "${BT_CTF_TRACES}/intersection/3eventsintersectreverse" 8 3
+test_intersect "${BT_CTF_TRACES_PATH}/intersection/3eventsintersectreverse" 8 3
diag "No intersection between 2 streams"
-test_intersect "${BT_CTF_TRACES}/intersection/nointersect" 6 0
+test_intersect "${BT_CTF_TRACES_PATH}/intersection/nointersect" 6 0
diag "Only 1 stream"
-test_intersect "${BT_CTF_TRACES}/intersection/onestream" 3 3
+test_intersect "${BT_CTF_TRACES_PATH}/intersection/onestream" 3 3
diag "No stream at all"
-test_intersect "${BT_CTF_TRACES}/intersection/nostream" 0 0
+test_intersect "${BT_CTF_TRACES_PATH}/intersection/nostream" 0 0
tmp_metadata=$(mktemp)
# Test a valid trace directory.
-"${BT_BIN}" -o ctf-metadata "${BT_CTF_TRACES}/succeed/wk-heartbeat-u" > "$tmp_metadata"
+"${BT_BIN}" -o ctf-metadata "${BT_CTF_TRACES_PATH}/succeed/wk-heartbeat-u" > "$tmp_metadata"
ok $? "Run babeltrace -o ctf-metadata with a valid trace directory, correct exit status"
-cmp -s "$tmp_metadata" "${BT_SRC_PATH}/tests/cli/test_output_ctf_metadata.ref"
+cmp -s "$tmp_metadata" "${BT_SRC_PATH}/tests/data/cli/test_output_ctf_metadata.ref"
ok $? "Run babeltrace -o ctf-metadata with a valid trace directory, correct output"
# Test an invalid trace directory.
-"${BT_BIN}" -o ctf-metadata "${BT_CTF_TRACES}" &> /dev/null
+"${BT_BIN}" -o ctf-metadata "${BT_CTF_TRACES_PATH}" &> /dev/null
isnt $? 0 "Run babeltrace -o ctf-metadata with an invalid trace directory, expecting failure"
+++ /dev/null
-/* CTF 1.8 */
-
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
-typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
-typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
-typealias integer { size = 5; align = 1; signed = false; } := uint5_t;
-typealias integer { size = 27; align = 1; signed = false; } := uint27_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "624b19d9-19cd-4eae-bab8-8342e1b96a5d";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- uint32_t stream_id;
- };
-};
-
-env {
- vpid = 3208;
- procname = "wk-heartbeat";
- domain = "ust";
- tracer_name = "lttng-ust";
- tracer_major = 2;
- tracer_minor = 0;
- tracer_patchlevel = 2;
-};
-
-clock {
- name = monotonic;
- uuid = "c19b5ac9-b8e6-4f78-be95-a605d04e34c6";
- description = "Monotonic Clock";
- freq = 1000000000; /* Frequency, in Hz */
- /* clock value offset from Epoch is: offset * (1/freq) */
- offset = 1351530929945824323;
-};
-
-typealias integer {
- size = 27; align = 1; signed = false;
- map = clock.monotonic.value;
-} := uint27_clock_monotonic_t;
-
-typealias integer {
- size = 32; align = 8; signed = false;
- map = clock.monotonic.value;
-} := uint32_clock_monotonic_t;
-
-typealias integer {
- size = 64; align = 8; signed = false;
- map = clock.monotonic.value;
-} := uint64_clock_monotonic_t;
-
-struct packet_context {
- uint64_clock_monotonic_t timestamp_begin;
- uint64_clock_monotonic_t timestamp_end;
- uint32_t events_discarded;
- uint32_t content_size;
- uint32_t packet_size;
- uint32_t cpu_id;
-};
-
-struct event_header_compact {
- enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
- variant <id> {
- struct {
- uint27_clock_monotonic_t timestamp;
- } compact;
- struct {
- uint32_t id;
- uint64_clock_monotonic_t timestamp;
- } extended;
- } v;
-} align(8);
-
-struct event_header_large {
- enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;
- variant <id> {
- struct {
- uint32_clock_monotonic_t timestamp;
- } compact;
- struct {
- uint32_t id;
- uint64_clock_monotonic_t timestamp;
- } extended;
- } v;
-} align(8);
-
-stream {
- id = 0;
- event.header := struct event_header_compact;
- packet.context := struct packet_context;
- event.context := struct {
- integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vtid;
- integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vpid;
- };
-};
-
-event {
- name = "heartbeat:msg";
- id = 0;
- stream_id = 0;
- loglevel = 13;
- fields := struct {
- string _msg;
- };
-};
-
-
diag "Test the packet_seq_num validation"
diag "No packet lost"
-test_no_lost "${BT_CTF_TRACES}/packet_seq_num/no_lost"
+test_no_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/no_lost"
diag "No packet lost, packet_seq_num not starting at 0"
-test_no_lost "${BT_CTF_TRACES}/packet_seq_num/no_lost_not_starting_at_0"
+test_no_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/no_lost_not_starting_at_0"
diag "1 stream, 2 packets lost before the last packet"
-test_lost "${BT_CTF_TRACES}/packet_seq_num/2_lost_before_last" "2"
+test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_lost_before_last" "2"
diag "2 streams, packets lost in one of them"
-test_lost "${BT_CTF_TRACES}/packet_seq_num/2_streams_lost_in_1" "2"
+test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_streams_lost_in_1" "2"
diag "2 streams, packets lost in both"
-test_lost "${BT_CTF_TRACES}/packet_seq_num/2_streams_lost_in_2" "2,3,1"
+test_lost "${BT_CTF_TRACES_PATH}/packet_seq_num/2_streams_lost_in_2" "2,3,1"
rm -rf "${out_path}" "${text_output1}" "${text_output2}"
}
-SUCCESS_TRACES=(${BT_CTF_TRACES}/succeed/*)
+SUCCESS_TRACES=(${BT_CTF_TRACES_PATH}/succeed/*)
# -2 because there is an empty trace that we skip
NUM_TESTS=$((${#SUCCESS_TRACES[@]} * 3 - 2))
. "@abs_top_builddir@/tests/utils/common.sh"
-SUCCESS_TRACES=(${BT_CTF_TRACES}/succeed/*)
-FAIL_TRACES=(${BT_CTF_TRACES}/fail/*)
+SUCCESS_TRACES=(${BT_CTF_TRACES_PATH}/succeed/*)
+FAIL_TRACES=(${BT_CTF_TRACES_PATH}/fail/*)
NUM_TESTS=$((${#SUCCESS_TRACES[@]} + ${#FAIL_TRACES[@]}))
. "@abs_top_builddir@/tests/utils/common.sh"
-TRACE_PATH="${BT_CTF_TRACES}/succeed/wk-heartbeat-u/"
+TRACE_PATH="${BT_CTF_TRACES_PATH}/succeed/wk-heartbeat-u/"
NUM_TESTS=40
+++ /dev/null
-/* CTF 1.8
- *
- * Architecture with 32-bit pointers, 32-bit integers, 32-bit longs.
- */
-
-typealias integer { size = 1; align = 1; signed = false; } := uint1_t;
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 63; align = 1; signed = false; } := timestamp_t;
-
-typealias integer { size = 32; align = 32; signed = false; base = 10; } := uint32_t;
-typealias integer { size = 32; align = 32; signed = false; } := void *;
-
-
-trace {
- major = 0;
- minor = 1;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- uint32_t stream_id;
- };
-};
-
-stream {
- event.header := struct {
- uint1_t id;
- timestamp_t timestamp;
- };
- event.context := struct {
- uint32_t thread_id;
- uint32_t event_count;
- };
-};
-
-event {
- name = func_enter;
- id = 0;
- fields := struct {
- void *func_called;
- void *called_from;
- };
-};
-
-event {
- name = func_exit;
- id = 1;
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
-
-trace {
- /* Integer out of range */
- major = 23452397856348975623897562893746589237465289374658923764598237645897234658723648579236;
- minor = 1;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-Á\1füÁ*d
\ No newline at end of file
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
-
-trace {
- major = 0;
- minor = 1;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "7b9e2f2a-530e-4ab1-816f-0831b5c09140";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "7b9e2f2a-530e-4ab1-816f-0831b5c09140";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "ad21eeaa-fab9-4692-aab8-ebd68c7feb17";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "d336520f-985d-481e-8e35-d99328655354";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "61db8e6b-2069-40e4-84ed-bc15f42181f0";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "a0a8c252-db03-4f36-a148-80a0a3c4edff";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "eb5045f7-b471-488e-b963-0221ddf423a7";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "2447a359-1e57-448f-96ef-3c324327047c";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "b7d90429-287f-45ff-897c-3db7c5ab8b5a";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "004fa3e8-48aa-453a-8be8-9d30ead9ac66";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13515309;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "0bef2d78-5020-4b09-b520-64480ef5c0e6";
- byte_order = be;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
- } align(8);
-};
-
-env {
- host = "sinkpad";
-};
-
-clock {
- name = test_clock;
- uuid = "ae130a0d-e10b-49cb-8b2d-64beaa23814c";
- description = "This is a test clock";
- freq = 1000000000;
- precision = 10;
- offset_s = 13932323;
- offset = 0;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
- } align(8);
-};
-
-event {
- id = 0;
- name = "dummy_event";
- stream_id = 0;
- fields := struct {
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
- integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
- } align(1);
-};
-
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-env {
- dummy = "blah";
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- byte_order = be;
-};
-
-stream {
- packet.context := struct {
- integer { size = 8; } packet_size;
- integer { size = 8; } events_discarded;
- };
-};
-
-event {
- name = "ev";
- fields := struct {
- string s;
- };
-};
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- byte_order = be;
-};
-
-event {
- name = "ev";
- fields := struct {
- string s;
- };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
-typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
-typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
-typealias integer { size = 64; align = 8; signed = false; } := unsigned long;
-typealias integer { size = 5; align = 1; signed = false; } := uint5_t;
-typealias integer { size = 27; align = 1; signed = false; } := uint27_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "59052333-e490-4ed9-af7a-b652437fba9a";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- uint32_t stream_id;
- };
-};
-
-env {
- hostname = "host";
- domain = "ust";
- tracer_name = "lttng-ust";
- tracer_major = 2;
- tracer_minor = 3;
-};
-
-clock {
- name = monotonic;
- uuid = "5f3ed925-9d73-4637-b8e4-02077abc8c8f";
- description = "Monotonic Clock";
- freq = 1000000000; /* Frequency, in Hz */
- /* clock value offset from Epoch is: offset * (1/freq) */
- offset = 1375437179542680815;
-};
-
-typealias integer {
- size = 27; align = 1; signed = false;
- map = clock.monotonic.value;
-} := uint27_clock_monotonic_t;
-
-typealias integer {
- size = 32; align = 8; signed = false;
- map = clock.monotonic.value;
-} := uint32_clock_monotonic_t;
-
-typealias integer {
- size = 64; align = 8; signed = false;
- map = clock.monotonic.value;
-} := uint64_clock_monotonic_t;
-
-struct packet_context {
- uint64_clock_monotonic_t timestamp_begin;
- uint64_clock_monotonic_t timestamp_end;
- uint64_t content_size;
- uint64_t packet_size;
- unsigned long events_discarded;
- uint32_t cpu_id;
-};
-
-struct event_header_compact {
- enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
- variant <id> {
- struct {
- uint27_clock_monotonic_t timestamp;
- } compact;
- struct {
- uint32_t id;
- uint64_clock_monotonic_t timestamp;
- } extended;
- } v;
-} align(8);
-
-struct event_header_large {
- enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;
- variant <id> {
- struct {
- uint32_clock_monotonic_t timestamp;
- } compact;
- struct {
- uint32_t id;
- uint64_clock_monotonic_t timestamp;
- } extended;
- } v;
-} align(8);
-
-stream {
- id = 0;
- event.header := struct event_header_compact;
- packet.context := struct packet_context;
-};
-
-event {
- name = "sequence event";
- id = 0;
- stream_id = 0;
- loglevel = 1;
- fields := struct {
- integer { size = 64; align = 8; signed = 0; encoding = none; base = 10; } __seq_int_field_length;
- integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _seq_int_field[ __seq_int_field_length ];
- integer { size = 64; align = 8; signed = 0; encoding = none; base = 10; } __seq_long_field_length;
- integer { size = 64; align = 8; signed = 1; encoding = none; base = 10; } _seq_long_field[ __seq_long_field_length ];
- };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- test = "\"";
- test2 = "?\x20\040?";
- test3 = '\n';
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- test = 0xABC234; /* hexadecimal */
- test1 = 06534; /* octal */
- test2 = 1234; /* decimal */
- test3 = +1234; /* decimal with + unary op */
- test4 = -1234; /* decimal (negated) */
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
-};
-
-event {
- name = string;
- fields := struct { string str; };
-};
+++ /dev/null
-/* CTF 1.8 */
-typealias integer { size = 8; align = 8; signed = false; aa = bb; } := uint8_t;
-typealias integer { size = 32; align = 32; signed = false; zz = aa; } := uint32_t;
-
-trace {
- major = 1;
- minor = 8;
- uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
- byte_order = le;
- packet.header := struct {
- uint32_t magic;
- uint8_t uuid[16];
- };
- blah = "aaa";
-};
-
-stream {
- packet.context := struct {
- uint32_t content_size;
- uint32_t packet_size;
- };
- askdjfhaskdjfh = 1;
-};
-
-event {
- name = string;
- fields := struct { string str; };
- asdjfhah := struct { uint8_t ffff; };
-};
--- /dev/null
+/* CTF 1.8 */
+
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
+typealias integer { size = 5; align = 1; signed = false; } := uint5_t;
+typealias integer { size = 27; align = 1; signed = false; } := uint27_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "624b19d9-19cd-4eae-bab8-8342e1b96a5d";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ uint32_t stream_id;
+ };
+};
+
+env {
+ vpid = 3208;
+ procname = "wk-heartbeat";
+ domain = "ust";
+ tracer_name = "lttng-ust";
+ tracer_major = 2;
+ tracer_minor = 0;
+ tracer_patchlevel = 2;
+};
+
+clock {
+ name = monotonic;
+ uuid = "c19b5ac9-b8e6-4f78-be95-a605d04e34c6";
+ description = "Monotonic Clock";
+ freq = 1000000000; /* Frequency, in Hz */
+ /* clock value offset from Epoch is: offset * (1/freq) */
+ offset = 1351530929945824323;
+};
+
+typealias integer {
+ size = 27; align = 1; signed = false;
+ map = clock.monotonic.value;
+} := uint27_clock_monotonic_t;
+
+typealias integer {
+ size = 32; align = 8; signed = false;
+ map = clock.monotonic.value;
+} := uint32_clock_monotonic_t;
+
+typealias integer {
+ size = 64; align = 8; signed = false;
+ map = clock.monotonic.value;
+} := uint64_clock_monotonic_t;
+
+struct packet_context {
+ uint64_clock_monotonic_t timestamp_begin;
+ uint64_clock_monotonic_t timestamp_end;
+ uint32_t events_discarded;
+ uint32_t content_size;
+ uint32_t packet_size;
+ uint32_t cpu_id;
+};
+
+struct event_header_compact {
+ enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
+ variant <id> {
+ struct {
+ uint27_clock_monotonic_t timestamp;
+ } compact;
+ struct {
+ uint32_t id;
+ uint64_clock_monotonic_t timestamp;
+ } extended;
+ } v;
+} align(8);
+
+struct event_header_large {
+ enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;
+ variant <id> {
+ struct {
+ uint32_clock_monotonic_t timestamp;
+ } compact;
+ struct {
+ uint32_t id;
+ uint64_clock_monotonic_t timestamp;
+ } extended;
+ } v;
+} align(8);
+
+stream {
+ id = 0;
+ event.header := struct event_header_compact;
+ packet.context := struct packet_context;
+ event.context := struct {
+ integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vtid;
+ integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _vpid;
+ };
+};
+
+event {
+ name = "heartbeat:msg";
+ id = 0;
+ stream_id = 0;
+ loglevel = 13;
+ fields := struct {
+ string _msg;
+ };
+};
+
+
--- /dev/null
+/* CTF 1.8
+ *
+ * Architecture with 32-bit pointers, 32-bit integers, 32-bit longs.
+ */
+
+typealias integer { size = 1; align = 1; signed = false; } := uint1_t;
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 63; align = 1; signed = false; } := timestamp_t;
+
+typealias integer { size = 32; align = 32; signed = false; base = 10; } := uint32_t;
+typealias integer { size = 32; align = 32; signed = false; } := void *;
+
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ uint32_t stream_id;
+ };
+};
+
+stream {
+ event.header := struct {
+ uint1_t id;
+ timestamp_t timestamp;
+ };
+ event.context := struct {
+ uint32_t thread_id;
+ uint32_t event_count;
+ };
+};
+
+event {
+ name = func_enter;
+ id = 0;
+ fields := struct {
+ void *func_called;
+ void *called_from;
+ };
+};
+
+event {
+ name = func_exit;
+ id = 1;
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
+
+trace {
+ /* Integer out of range */
+ major = 23452397856348975623897562893746589237465289374658923764598237645897234658723648579236;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+Á\1füÁ*d
\ No newline at end of file
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 0;
+ minor = 1;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "7b9e2f2a-530e-4ab1-816f-0831b5c09140";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "7b9e2f2a-530e-4ab1-816f-0831b5c09140";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "a967fbc0-c89b-4b92-b5df-30688d576ddf";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "fb759646-b2b9-42d7-9013-f790694dd902";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "ad21eeaa-fab9-4692-aab8-ebd68c7feb17";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "d336520f-985d-481e-8e35-d99328655354";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "61db8e6b-2069-40e4-84ed-bc15f42181f0";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "a0a8c252-db03-4f36-a148-80a0a3c4edff";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "eb5045f7-b471-488e-b963-0221ddf423a7";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "2447a359-1e57-448f-96ef-3c324327047c";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "b7d90429-287f-45ff-897c-3db7c5ab8b5a";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "004fa3e8-48aa-453a-8be8-9d30ead9ac66";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13515309;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "0bef2d78-5020-4b09-b520-64480ef5c0e6";
+ byte_order = be;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } stream_id;
+ } align(8);
+};
+
+env {
+ host = "sinkpad";
+};
+
+clock {
+ name = test_clock;
+ uuid = "ae130a0d-e10b-49cb-8b2d-64beaa23814c";
+ description = "This is a test clock";
+ freq = 1000000000;
+ precision = 10;
+ offset_s = 13932323;
+ offset = 0;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; map = clock.test_clock.value; } timestamp;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = be; } events_discarded;
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_seq_num;
+ } align(8);
+};
+
+event {
+ id = 0;
+ name = "dummy_event";
+ stream_id = 0;
+ fields := struct {
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } dummy_value;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } tracefile_id;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_begin;
+ integer { size = 32; align = 1; signed = false; encoding = none; base = decimal; byte_order = be; } packet_end;
+ } align(1);
+};
+
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+env {
+ dummy = "blah";
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ byte_order = be;
+};
+
+stream {
+ packet.context := struct {
+ integer { size = 8; } packet_size;
+ integer { size = 8; } events_discarded;
+ };
+};
+
+event {
+ name = "ev";
+ fields := struct {
+ string s;
+ };
+};
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ byte_order = be;
+};
+
+event {
+ name = "ev";
+ fields := struct {
+ string s;
+ };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 16; align = 8; signed = false; } := uint16_t;
+typealias integer { size = 32; align = 8; signed = false; } := uint32_t;
+typealias integer { size = 64; align = 8; signed = false; } := uint64_t;
+typealias integer { size = 64; align = 8; signed = false; } := unsigned long;
+typealias integer { size = 5; align = 1; signed = false; } := uint5_t;
+typealias integer { size = 27; align = 1; signed = false; } := uint27_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "59052333-e490-4ed9-af7a-b652437fba9a";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ uint32_t stream_id;
+ };
+};
+
+env {
+ hostname = "host";
+ domain = "ust";
+ tracer_name = "lttng-ust";
+ tracer_major = 2;
+ tracer_minor = 3;
+};
+
+clock {
+ name = monotonic;
+ uuid = "5f3ed925-9d73-4637-b8e4-02077abc8c8f";
+ description = "Monotonic Clock";
+ freq = 1000000000; /* Frequency, in Hz */
+ /* clock value offset from Epoch is: offset * (1/freq) */
+ offset = 1375437179542680815;
+};
+
+typealias integer {
+ size = 27; align = 1; signed = false;
+ map = clock.monotonic.value;
+} := uint27_clock_monotonic_t;
+
+typealias integer {
+ size = 32; align = 8; signed = false;
+ map = clock.monotonic.value;
+} := uint32_clock_monotonic_t;
+
+typealias integer {
+ size = 64; align = 8; signed = false;
+ map = clock.monotonic.value;
+} := uint64_clock_monotonic_t;
+
+struct packet_context {
+ uint64_clock_monotonic_t timestamp_begin;
+ uint64_clock_monotonic_t timestamp_end;
+ uint64_t content_size;
+ uint64_t packet_size;
+ unsigned long events_discarded;
+ uint32_t cpu_id;
+};
+
+struct event_header_compact {
+ enum : uint5_t { compact = 0 ... 30, extended = 31 } id;
+ variant <id> {
+ struct {
+ uint27_clock_monotonic_t timestamp;
+ } compact;
+ struct {
+ uint32_t id;
+ uint64_clock_monotonic_t timestamp;
+ } extended;
+ } v;
+} align(8);
+
+struct event_header_large {
+ enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;
+ variant <id> {
+ struct {
+ uint32_clock_monotonic_t timestamp;
+ } compact;
+ struct {
+ uint32_t id;
+ uint64_clock_monotonic_t timestamp;
+ } extended;
+ } v;
+} align(8);
+
+stream {
+ id = 0;
+ event.header := struct event_header_compact;
+ packet.context := struct packet_context;
+};
+
+event {
+ name = "sequence event";
+ id = 0;
+ stream_id = 0;
+ loglevel = 1;
+ fields := struct {
+ integer { size = 64; align = 8; signed = 0; encoding = none; base = 10; } __seq_int_field_length;
+ integer { size = 32; align = 8; signed = 1; encoding = none; base = 10; } _seq_int_field[ __seq_int_field_length ];
+ integer { size = 64; align = 8; signed = 0; encoding = none; base = 10; } __seq_long_field_length;
+ integer { size = 64; align = 8; signed = 1; encoding = none; base = 10; } _seq_long_field[ __seq_long_field_length ];
+ };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; base = 10; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; base = hex; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ test = "\"";
+ test2 = "?\x20\040?";
+ test3 = '\n';
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ test = 0xABC234; /* hexadecimal */
+ test1 = 06534; /* octal */
+ test2 = 1234; /* decimal */
+ test3 = +1234; /* decimal with + unary op */
+ test4 = -1234; /* decimal (negated) */
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+};
--- /dev/null
+/* CTF 1.8 */
+typealias integer { size = 8; align = 8; signed = false; aa = bb; } := uint8_t;
+typealias integer { size = 32; align = 32; signed = false; zz = aa; } := uint32_t;
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "2a6422d0-6cee-11e0-8c08-cb07d7b3a564";
+ byte_order = le;
+ packet.header := struct {
+ uint32_t magic;
+ uint8_t uuid[16];
+ };
+ blah = "aaa";
+};
+
+stream {
+ packet.context := struct {
+ uint32_t content_size;
+ uint32_t packet_size;
+ };
+ askdjfhaskdjfh = 1;
+};
+
+event {
+ name = string;
+ fields := struct { string str; };
+ asdjfhah := struct { uint8_t ffff; };
+};
--- /dev/null
+BUILD_ID_PREFIX=cd
+BUILD_ID_SUFFIX=d98cdd87f7fe64c13b6daad553987eafd40cbb
+BUILD_ID=$(BUILD_ID_PREFIX)$(BUILD_ID_SUFFIX)
+
+BUILD_DIR ?= build
+
+OBJS=$(BUILD_DIR)/dwarf_full/libhello_so \
+ $(BUILD_DIR)/elf_only/libhello_so \
+ $(BUILD_DIR)/build_id/libhello_so \
+ $(BUILD_DIR)/debug_link/libhello_so
+
+all: $(OBJS)
+
+%.o: %.c
+ $(CC) -gdwarf -fdebug-prefix-map=$(CURDIR)=. -fPIC -c -I. -o $@ $<
+
+# Master copy: ELF with DWARF and build-id
+$(BUILD_DIR)/dwarf_full/libhello_so: tp.o libhello.o
+ mkdir -p $(@D)
+ $(CC) -shared -gdwarf -llttng-ust -ldl -Wl,-soname,libhello.so -Wl,--build-id=0x$(BUILD_ID) -o $@ $^
+
+# ELF only, no debug symbols, no build-d
+$(BUILD_DIR)/elf_only/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
+ mkdir -p $(@D)
+ objcopy -g $< $@.tmp
+ objcopy --remove-section=.note.gnu.build-id $@.tmp
+ mv $@.tmp $@
+
+# ELF with external build-id DWARF
+$(BUILD_DIR)/build_id/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
+ mkdir -p $(@D)/.build-id/$(BUILD_ID_PREFIX)
+ objcopy --only-keep-debug $< $(@D)/.build-id/$(BUILD_ID_PREFIX)/$(BUILD_ID_SUFFIX).debug
+ objcopy -g $< $@
+
+# ELF with external debug link DWARF
+$(BUILD_DIR)/debug_link/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
+ mkdir -p $(@D)
+ objcopy --remove-section=.note.gnu.build-id $< $@.tmp
+ objcopy --only-keep-debug $@.tmp $(@D)/libhello_so.debug
+ objcopy -g $@.tmp
+ cd $(@D) && objcopy --add-gnu-debuglink=libhello_so.debug $(@F).tmp
+ mv $@.tmp $@
+
+clean:
+ rm -f *.o
+
+dist-clean: clean
+ rm -rf $(BUILD_DIR)
+
+.PHONY: all clean dist-clean
--- /dev/null
+debug-info-data
+==============
+
+This directory contains pre-generated ELF and DWARF files used to test
+the debug info analysis feature, including lookup of DWARF debugging
+information via build ID and debug link methods, as well as the source
+files used to generate them.
+
+The generated files are:
+
+* `ARCH/dwarf_full/libhello_so` (ELF and DWARF)
+* `ARCH/elf_only/libhello_so` (ELF only)
+* `ARCH/build_id/libhello_so` (ELF with separate DWARF via build ID)
+* `ARCH/build_id/.build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug` (DWARF for build ID)
+* `ARCH/debug_link/libhello_so` (ELF with separate DWARF via debug link)
+* `ARCH/debug_link/libhello_so.debug` (DWARF for debug link)
+
+We use a suffix of "_so" instead of ".so" since some distributions
+build systems will consider ".so" files as artifacts from a previous
+build that were "left-over" and will remove them prior to the build.
+
+All files are generated from the four (4) following source files:
+
+* libhello.c
+* libhello.h
+* tp.c
+* tp.h
+
+The generated executables were built using a native GNU toolchain on either
+Ubuntu 16.04 or 18.04 depending on the architecture.
+
+To regenerate them, you can use the included Makefile or follow these steps:
+
+## Generate the object files
+
+ $ gcc -gdwarf -fdebug-prefix-map=$(pwd)=. -fPIC -c -I. tp.c libhello.c
+
+## Combined ELF and DWARF
+
+ $ build_id_prefix=cd
+ $ build_id_suffix=d98cdd87f7fe64c13b6daad553987eafd40cbb
+ $ build_id="$build_id_prefix$build_id_suffix"
+ $ mkdir dwarf_full
+ $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello.so -Wl,--build-id=0x$build_id -o dwarf_full/libhello_so tp.o libhello.o
+
+## ELF only
+
+ $ mkdir elf_only
+ $ objcopy -g dwarf_full/libhello_so elf_only/libhello_so
+ $ objcopy --remove-section=.note.gnu.build-id elf_only/libhello_so
+
+## ELF and DWARF with Build ID
+
+ $ mkdir -p build_id/.build-id/$build_id_prefix
+ $ objcopy --only-keep-debug dwarf_full/libhello_so build_id/.build-id/$build_id_prefix/$build_id_suffix.debug
+ $ objcopy -g dwarf_full/libhello_so build_id/libhello_so
+
+## ELF and DWARF with Debug Link
+
+ $ mkdir debug_link
+ $ objcopy --remove-section=.note.gnu.build-id dwarf_full/libhello_so debug_link/libhello_so
+ $ objcopy --only-keep-debug debug_link/libhello_so debug_link/libhello_so.debug
+ $ objcopy -g debug_link/libhello_so
+ $ cd debug_link && objcopy --add-gnu-debuglink=libhello_so.debug libhello_so && cd ..
+
+
+Test program
+------------
+An executable linked to this library can be compiled from the `main.c` source file.
+To compile it, you can do:
+
+ $ ln -s libhello_so libhello.so
+ $ gcc -I. -o test main.c -L. -lhello_build_id -llttng-ust -ldl -Wl,--rpath=.
+
+The trace provided in this directory was generated with lttng-ust running this
+program and stripped to contain only the bare minimum. When running babeltrace
+with the `--debug-info-target-prefix` option pointing to the source tree of
+Babeltrace, the `my_provider:my_first_tracepoint` events should contain this
+information:
+
+ debug_info = { bin = "libhello_so+0x166b", func = "baz+0x9c", src = "libhello.c:20" } }
--- /dev/null
+/*
+ * libhello.c
+ *
+ * Debug Info - Tests
+ *
+ * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Author: Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <stdio.h>
+#define TRACEPOINT_DEFINE
+#include "tp.h"
+
+void foo()
+{
+ tracepoint(my_provider, my_first_tracepoint, 42, "hello, tracer");
+ printf("foo\n");
+}
+
+void bar()
+{
+ tracepoint(my_provider, my_first_tracepoint, 57,
+ "recoltes et semailles");
+ printf("bar\n");
+}
+
+void baz()
+{
+ tracepoint(my_provider, my_other_tracepoint, 1729);
+ printf("baz\n");
+}
--- /dev/null
+/*
+ * libhello.h
+ *
+ * Debug Info - Tests
+ *
+ * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Author: Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#ifndef _LIBHELLO_H
+#define _LIBHELLO_H
+
+void foo();
+void bar();
+void baz();
+
+#endif /* _LIBHELLO_H */
--- /dev/null
+/*
+ * main.c
+ *
+ * Debug Info - Main
+ *
+ * Copyright 2017 Julien Desfossez <jdesfossez@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#include <stdio.h>
+#include "libhello.h"
+#include "tp.h"
+
+int main()
+{
+ foo();
+ bar();
+ baz();
+ return 0;
+}
--- /dev/null
+/*
+ * tp.c
+ *
+ * Debug Info - Tests
+ *
+ * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Author: Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+#define TRACEPOINT_CREATE_PROBES
+
+#include "tp.h"
--- /dev/null
+/*
+ * tp.h
+ *
+ * Debug Info - Tests
+ *
+ * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Author: Antoine Busque <antoine.busque@efficios.com>
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ */
+
+#undef TRACEPOINT_PROVIDER
+#define TRACEPOINT_PROVIDER my_provider
+
+#undef TRACEPOINT_INCLUDE
+#define TRACEPOINT_INCLUDE "./tp.h"
+
+#if !defined(_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
+#define _TP_H
+
+#include <lttng/tracepoint.h>
+
+TRACEPOINT_EVENT(
+ my_provider,
+ my_first_tracepoint,
+ TP_ARGS(
+ int, my_integer_arg,
+ char*, my_string_arg
+ ),
+ TP_FIELDS(
+ ctf_string(my_string_field, my_string_arg)
+ ctf_integer(int, my_integer_field, my_integer_arg)
+ )
+)
+
+TRACEPOINT_EVENT(
+ my_provider,
+ my_other_tracepoint,
+ TP_ARGS(
+ int, my_int
+ ),
+ TP_FIELDS(
+ ctf_integer(int, some_field, my_int)
+ )
+)
+
+#endif /* _TP_H */
+
+#include <lttng/tracepoint-event.h>
--- /dev/null
+/* CTF 1.8 */
+
+trace {
+ major = 1;
+ minor = 8;
+ uuid = "c4f5ad74-2d9a-4a17-9633-3e9e49d5f773";
+ byte_order = le;
+ packet.header := struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } magic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } uuid[16];
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_instance_id;
+ } align(8);
+};
+
+env {
+ hostname = "sinkpad";
+ domain = "ust";
+ tracer_name = "lttng-ust";
+ tracer_major = 2;
+ tracer_minor = 10;
+};
+
+clock {
+ name = monotonic;
+ uuid = "00000000-0000-0000-0000-000000000000";
+ description = "Monotonic Clock";
+ freq = 1000000000;
+ precision = 1;
+ offset_s = 0;
+ offset = 1497619475540462738;
+ absolute = TRUE;
+};
+
+stream {
+ id = 0;
+ event.header := struct {
+ enum : integer { size = 5; align = 1; signed = false; encoding = none; base = decimal; byte_order = le; } { "compact" = 0 ... 30, "extended" = 31 } id;
+ variant <id> {
+ struct {
+ integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp;
+ } align(1) compact;
+ struct {
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } id;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp;
+ } align(8) extended;
+ } v;
+ } align(8);
+
+ packet.context := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp_begin;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp_end;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } content_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } packet_size;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } packet_seq_num;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } events_discarded;
+ integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } cpu_id;
+ } align(8);
+
+ event.context := struct {
+ integer { size = 32; align = 8; signed = true; encoding = none; base = decimal; byte_order = le; } _vpid;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = hexadecimal; byte_order = le; } _ip;
+ } align(8);
+};
+
+event {
+ name = "lttng_ust_statedump:bin_info";
+ id = 0;
+ stream_id = 0;
+ loglevel = 13;
+ fields := struct {
+ integer { size = 64; align = 8; signed = false; encoding = none; base = hexadecimal; byte_order = le; } _baddr;
+ integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _memsz;
+ string { encoding = UTF8; } _path;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _is_pic;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _has_build_id;
+ integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _has_debug_link;
+ } align(8);
+};
+
+event {
+ name = "my_provider:my_first_tracepoint";
+ id = 1;
+ stream_id = 0;
+ loglevel = 13;
+ fields := struct {
+ string { encoding = UTF8; } _my_string_field;
+ integer { size = 32; align = 8; signed = true; encoding = none; base = decimal; byte_order = le; } _my_integer_field;
+ } align(8);
+};
+
--- /dev/null
+Trace class:
+ Stream class (ID 0):
+ Packets have beginning default clock snapshot: Yes
+ Packets have end default clock snapshot: Yes
+ Supports discarded events: Yes
+ Discarded events have default clock snapshots: Yes
+ Supports discarded packets: No
+ Discarded packets have default clock snapshots: No
+ Default clock class:
+ Name: default
+ Frequency (Hz): 1,000,000,000
+ Precision (cycles): 1
+ Offset (s): 0
+ Offset (cycles): 0
+ Origin is Unix epoch: No
+ Event class `ev` (ID 0):
+ Payload field class: Structure (2 members):
+ first: Signed integer (8-bit, Base 10)
+ second: String
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream beginning:
+ Trace:
+ Stream (ID 0, Class ID 0)
+
+[Unknown]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream activity beginning
+
+[0 cycles, 0 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Packet beginning:
+
+[3600 cycles, 3600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -23
+ second: saluuuut
+
+[8600 cycles, 8600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -22
+ second: saluuuut
+
+[13,600 cycles, 13,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -21
+ second: saluuuut
+
+[18,600 cycles, 18,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -20
+ second: saluuuut
+
+[23,600 cycles, 23,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -19
+ second: saluuuut
+
+[28,600 cycles, 28,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -18
+ second: saluuuut
+
+[33,600 cycles, 33,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -17
+ second: saluuuut
+
+[38,600 cycles, 38,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -16
+ second: saluuuut
+
+[43,600 cycles, 43,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -15
+ second: saluuuut
+
+[48,600 cycles, 48,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -14
+ second: saluuuut
+
+[53,600 cycles, 53,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -13
+ second: saluuuut
+
+[58,600 cycles, 58,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -12
+ second: saluuuut
+
+[63,600 cycles, 63,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -11
+ second: saluuuut
+
+[68,600 cycles, 68,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -10
+ second: saluuuut
+
+[73,600 cycles, 73,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -9
+ second: saluuuut
+
+[78,600 cycles, 78,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -8
+ second: saluuuut
+
+[83,600 cycles, 83,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -7
+ second: saluuuut
+
+[88,600 cycles, 88,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -6
+ second: saluuuut
+
+[93,600 cycles, 93,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -5
+ second: saluuuut
+
+[98,600 cycles, 98,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -4
+ second: saluuuut
+
+[103,600 cycles, 103,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -3
+ second: saluuuut
+
+[108,600 cycles, 108,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -2
+ second: saluuuut
+
+[113,600 cycles, 113,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: -1
+ second: saluuuut
+
+[118,600 cycles, 118,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: 0
+ second: saluuuut
+
+[123,600 cycles, 123,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `ev` (Class ID 0):
+ Payload:
+ first: 1
+ second: saluuuut
+
+[123,600 cycles, 123,600 ns from origin]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Packet end
+
+[Unknown]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream activity end
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream end
--- /dev/null
+Trace class:
+ UUID: 2a6422d0-6cee-11e0-8c08-cb07d7b3a564
+ Stream class (ID 0):
+ Packets have beginning default clock snapshot: No
+ Packets have end default clock snapshot: No
+ Supports discarded events: No
+ Discarded events have default clock snapshots: No
+ Supports discarded packets: No
+ Discarded packets have default clock snapshots: No
+ Event class `string` (ID 0):
+ Payload field class: Structure (1 member):
+ str: String
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream beginning:
+ Trace:
+ Class UUID: 2a6422d0-6cee-11e0-8c08-cb07d7b3a564
+ Stream (ID 0, Class ID 0)
+
+[Unknown]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream activity beginning
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Packet beginning:
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `string` (Class ID 0):
+ Payload:
+ str: This is a test trace
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Event `string` (Class ID 0):
+ Payload:
+ str: with only two small events.
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Packet end
+
+[Unknown]
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream activity end
+
+{Trace 0, Stream class ID 0, Stream ID 0}
+Stream end
+++ /dev/null
-BUILD_ID_PREFIX=cd
-BUILD_ID_SUFFIX=d98cdd87f7fe64c13b6daad553987eafd40cbb
-BUILD_ID=$(BUILD_ID_PREFIX)$(BUILD_ID_SUFFIX)
-
-BUILD_DIR ?= build
-
-OBJS=$(BUILD_DIR)/dwarf_full/libhello_so \
- $(BUILD_DIR)/elf_only/libhello_so \
- $(BUILD_DIR)/build_id/libhello_so \
- $(BUILD_DIR)/debug_link/libhello_so
-
-all: $(OBJS)
-
-%.o: %.c
- $(CC) -gdwarf -fdebug-prefix-map=$(CURDIR)=. -fPIC -c -I. -o $@ $<
-
-# Master copy: ELF with DWARF and build-id
-$(BUILD_DIR)/dwarf_full/libhello_so: tp.o libhello.o
- mkdir -p $(@D)
- $(CC) -shared -gdwarf -llttng-ust -ldl -Wl,-soname,libhello.so -Wl,--build-id=0x$(BUILD_ID) -o $@ $^
-
-# ELF only, no debug symbols, no build-d
-$(BUILD_DIR)/elf_only/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
- mkdir -p $(@D)
- objcopy -g $< $@.tmp
- objcopy --remove-section=.note.gnu.build-id $@.tmp
- mv $@.tmp $@
-
-# ELF with external build-id DWARF
-$(BUILD_DIR)/build_id/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
- mkdir -p $(@D)/.build-id/$(BUILD_ID_PREFIX)
- objcopy --only-keep-debug $< $(@D)/.build-id/$(BUILD_ID_PREFIX)/$(BUILD_ID_SUFFIX).debug
- objcopy -g $< $@
-
-# ELF with external debug link DWARF
-$(BUILD_DIR)/debug_link/libhello_so: $(BUILD_DIR)/dwarf_full/libhello_so
- mkdir -p $(@D)
- objcopy --remove-section=.note.gnu.build-id $< $@.tmp
- objcopy --only-keep-debug $@.tmp $(@D)/libhello_so.debug
- objcopy -g $@.tmp
- cd $(@D) && objcopy --add-gnu-debuglink=libhello_so.debug $(@F).tmp
- mv $@.tmp $@
-
-clean:
- rm -f *.o
-
-dist-clean: clean
- rm -rf $(BUILD_DIR)
-
-.PHONY: all clean dist-clean
+++ /dev/null
-debug-info-data
-==============
-
-This directory contains pre-generated ELF and DWARF files used to test
-the debug info analysis feature, including lookup of DWARF debugging
-information via build ID and debug link methods, as well as the source
-files used to generate them.
-
-The generated files are:
-
-* `ARCH/dwarf_full/libhello_so` (ELF and DWARF)
-* `ARCH/elf_only/libhello_so` (ELF only)
-* `ARCH/build_id/libhello_so` (ELF with separate DWARF via build ID)
-* `ARCH/build_id/.build-id/cd/d98cdd87f7fe64c13b6daad553987eafd40cbb.debug` (DWARF for build ID)
-* `ARCH/debug_link/libhello_so` (ELF with separate DWARF via debug link)
-* `ARCH/debug_link/libhello_so.debug` (DWARF for debug link)
-
-We use a suffix of "_so" instead of ".so" since some distributions
-build systems will consider ".so" files as artifacts from a previous
-build that were "left-over" and will remove them prior to the build.
-
-All files are generated from the four (4) following source files:
-
-* libhello.c
-* libhello.h
-* tp.c
-* tp.h
-
-The generated executables were built using a native GNU toolchain on either
-Ubuntu 16.04 or 18.04 depending on the architecture.
-
-To regenerate them, you can use the included Makefile or follow these steps:
-
-## Generate the object files
-
- $ gcc -gdwarf -fdebug-prefix-map=$(pwd)=. -fPIC -c -I. tp.c libhello.c
-
-## Combined ELF and DWARF
-
- $ build_id_prefix=cd
- $ build_id_suffix=d98cdd87f7fe64c13b6daad553987eafd40cbb
- $ build_id="$build_id_prefix$build_id_suffix"
- $ mkdir dwarf_full
- $ gcc -shared -g -llttng-ust -ldl -Wl,-soname,libhello.so -Wl,--build-id=0x$build_id -o dwarf_full/libhello_so tp.o libhello.o
-
-## ELF only
-
- $ mkdir elf_only
- $ objcopy -g dwarf_full/libhello_so elf_only/libhello_so
- $ objcopy --remove-section=.note.gnu.build-id elf_only/libhello_so
-
-## ELF and DWARF with Build ID
-
- $ mkdir -p build_id/.build-id/$build_id_prefix
- $ objcopy --only-keep-debug dwarf_full/libhello_so build_id/.build-id/$build_id_prefix/$build_id_suffix.debug
- $ objcopy -g dwarf_full/libhello_so build_id/libhello_so
-
-## ELF and DWARF with Debug Link
-
- $ mkdir debug_link
- $ objcopy --remove-section=.note.gnu.build-id dwarf_full/libhello_so debug_link/libhello_so
- $ objcopy --only-keep-debug debug_link/libhello_so debug_link/libhello_so.debug
- $ objcopy -g debug_link/libhello_so
- $ cd debug_link && objcopy --add-gnu-debuglink=libhello_so.debug libhello_so && cd ..
-
-
-Test program
-------------
-An executable linked to this library can be compiled from the `main.c` source file.
-To compile it, you can do:
-
- $ ln -s libhello_so libhello.so
- $ gcc -I. -o test main.c -L. -lhello_build_id -llttng-ust -ldl -Wl,--rpath=.
-
-The trace provided in this directory was generated with lttng-ust running this
-program and stripped to contain only the bare minimum. When running babeltrace
-with the `--debug-info-target-prefix` option pointing to the source tree of
-Babeltrace, the `my_provider:my_first_tracepoint` events should contain this
-information:
-
- debug_info = { bin = "libhello_so+0x166b", func = "baz+0x9c", src = "libhello.c:20" } }
+++ /dev/null
-/*
- * libhello.c
- *
- * Debug Info - Tests
- *
- * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
- *
- * Author: Antoine Busque <antoine.busque@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <stdio.h>
-#define TRACEPOINT_DEFINE
-#include "tp.h"
-
-void foo()
-{
- tracepoint(my_provider, my_first_tracepoint, 42, "hello, tracer");
- printf("foo\n");
-}
-
-void bar()
-{
- tracepoint(my_provider, my_first_tracepoint, 57,
- "recoltes et semailles");
- printf("bar\n");
-}
-
-void baz()
-{
- tracepoint(my_provider, my_other_tracepoint, 1729);
- printf("baz\n");
-}
+++ /dev/null
-/*
- * libhello.h
- *
- * Debug Info - Tests
- *
- * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
- *
- * Author: Antoine Busque <antoine.busque@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#ifndef _LIBHELLO_H
-#define _LIBHELLO_H
-
-void foo();
-void bar();
-void baz();
-
-#endif /* _LIBHELLO_H */
+++ /dev/null
-/*
- * main.c
- *
- * Debug Info - Main
- *
- * Copyright 2017 Julien Desfossez <jdesfossez@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#include <stdio.h>
-#include "libhello.h"
-#include "tp.h"
-
-int main()
-{
- foo();
- bar();
- baz();
- return 0;
-}
+++ /dev/null
-/*
- * tp.c
- *
- * Debug Info - Tests
- *
- * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
- *
- * Author: Antoine Busque <antoine.busque@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-#define TRACEPOINT_CREATE_PROBES
-
-#include "tp.h"
+++ /dev/null
-/*
- * tp.h
- *
- * Debug Info - Tests
- *
- * Copyright 2016 Antoine Busque <antoine.busque@efficios.com>
- *
- * Author: Antoine Busque <antoine.busque@efficios.com>
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- * SOFTWARE.
- */
-
-#undef TRACEPOINT_PROVIDER
-#define TRACEPOINT_PROVIDER my_provider
-
-#undef TRACEPOINT_INCLUDE
-#define TRACEPOINT_INCLUDE "./tp.h"
-
-#if !defined(_TP_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
-#define _TP_H
-
-#include <lttng/tracepoint.h>
-
-TRACEPOINT_EVENT(
- my_provider,
- my_first_tracepoint,
- TP_ARGS(
- int, my_integer_arg,
- char*, my_string_arg
- ),
- TP_FIELDS(
- ctf_string(my_string_field, my_string_arg)
- ctf_integer(int, my_integer_field, my_integer_arg)
- )
-)
-
-TRACEPOINT_EVENT(
- my_provider,
- my_other_tracepoint,
- TP_ARGS(
- int, my_int
- ),
- TP_FIELDS(
- ctf_integer(int, some_field, my_int)
- )
-)
-
-#endif /* _TP_H */
-
-#include <lttng/tracepoint-event.h>
+++ /dev/null
-/* CTF 1.8 */
-
-trace {
- major = 1;
- minor = 8;
- uuid = "c4f5ad74-2d9a-4a17-9633-3e9e49d5f773";
- byte_order = le;
- packet.header := struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } magic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } uuid[16];
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } stream_instance_id;
- } align(8);
-};
-
-env {
- hostname = "sinkpad";
- domain = "ust";
- tracer_name = "lttng-ust";
- tracer_major = 2;
- tracer_minor = 10;
-};
-
-clock {
- name = monotonic;
- uuid = "00000000-0000-0000-0000-000000000000";
- description = "Monotonic Clock";
- freq = 1000000000;
- precision = 1;
- offset_s = 0;
- offset = 1497619475540462738;
- absolute = TRUE;
-};
-
-stream {
- id = 0;
- event.header := struct {
- enum : integer { size = 5; align = 1; signed = false; encoding = none; base = decimal; byte_order = le; } { "compact" = 0 ... 30, "extended" = 31 } id;
- variant <id> {
- struct {
- integer { size = 64; align = 1; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp;
- } align(1) compact;
- struct {
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } id;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp;
- } align(8) extended;
- } v;
- } align(8);
-
- packet.context := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp_begin;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; map = clock.monotonic.value; } timestamp_end;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } content_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } packet_size;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } packet_seq_num;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } events_discarded;
- integer { size = 32; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } cpu_id;
- } align(8);
-
- event.context := struct {
- integer { size = 32; align = 8; signed = true; encoding = none; base = decimal; byte_order = le; } _vpid;
- integer { size = 64; align = 8; signed = false; encoding = none; base = hexadecimal; byte_order = le; } _ip;
- } align(8);
-};
-
-event {
- name = "lttng_ust_statedump:bin_info";
- id = 0;
- stream_id = 0;
- loglevel = 13;
- fields := struct {
- integer { size = 64; align = 8; signed = false; encoding = none; base = hexadecimal; byte_order = le; } _baddr;
- integer { size = 64; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _memsz;
- string { encoding = UTF8; } _path;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _is_pic;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _has_build_id;
- integer { size = 8; align = 8; signed = false; encoding = none; base = decimal; byte_order = le; } _has_debug_link;
- } align(8);
-};
-
-event {
- name = "my_provider:my_first_tracepoint";
- id = 1;
- stream_id = 0;
- loglevel = 13;
- fields := struct {
- string { encoding = UTF8; } _my_string_field;
- integer { size = 32; align = 8; signed = true; encoding = none; base = decimal; byte_order = le; } _my_integer_field;
- } align(8);
-};
-
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/i386-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/i386-linux-gnu"
"${curdir}/test_bin_info" \
--foo-addr=0x1c8d \
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/powerpc-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/powerpc-linux-gnu"
"${curdir}/test_bin_info" \
--foo-addr=0x23bc \
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/powerpc64le-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/powerpc64le-linux-gnu"
"${curdir}/test_bin_info" \
--foo-addr=0x2e7c \
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/x86_64-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/x86_64-linux-gnu"
"${curdir}/test_bin_info" \
--foo-addr=0x2277 \
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/i386-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/i386-linux-gnu"
"${curdir}/test_dwarf" "$debug_info_data"
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/powerpc-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/powerpc-linux-gnu"
"${curdir}/test_dwarf" "$debug_info_data"
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/powerpc64le-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/powerpc64le-linux-gnu"
"${curdir}/test_dwarf" "$debug_info_data"
curdir="$(cd -P "$(dirname "$0")" >/dev/null && pwd)"
-debug_info_data="${BT_SRC_PATH}/tests/debug-info-data/x86_64-linux-gnu"
+debug_info_data="${BT_DEBUG_INFO_PATH}/x86_64-linux-gnu"
"${curdir}/test_dwarf" "$debug_info_data"
TESTRUNNER_PY="${BT_SRC_PATH}/tests/utils/python/testrunner.py"
THIS_DIR="${BT_SRC_PATH}/tests/plugins"
export BABELTRACE_PLUGIN_PATH="${BT_BUILD_PATH}/src/plugins/utils:${BT_BUILD_PATH}/src/plugins/ctf:${BT_BUILD_PATH}/src/plugins/lttng-utils"
-export DEBUG_INFO_DATA_DIR="${BT_SRC_PATH}/tests/debug-info-data"
+export BT_DEBUG_INFO_PATH
if [ "x${MSYSTEM}" != "x" ]; then
export PATH="${BT_BUILD_PATH}/src/lib/.libs:${PATH}"
@unittest.skip('depends on Python bindings, which are broken')
class LttngUtilsDebugInfoTestCase(unittest.TestCase):
def test_debug_info(self):
- debug_info_data_dir = os.environ['DEBUG_INFO_DATA_DIR']
- trace_path = os.path.join(debug_info_data_dir, 'trace')
- target_prefix = os.path.join(debug_info_data_dir, '..', '..')
+ debug_info_data_path = os.environ['BT_DEBUG_INFO_PATH']
+ trace_path = os.path.join(debug_info_data_path, 'trace')
+ target_prefix = os.path.join(debug_info_data_path, '..', '..')
src = bt2.ComponentSpec('ctf', 'fs', trace_path)
flt = bt2.ComponentSpec('lttng-utils', 'debug-info', {
'target-prefix': target_prefix,
import re
-test_ctf_traces_path = os.environ['TEST_CTF_TRACES_PATH']
+test_ctf_traces_path = os.environ['BT_CTF_TRACES_PATH']
# Key to sort streams in a predictable order.
self.assertEqual(len(streams), 2)
self.assertRegexpMatches(
str(streams[0]["port-name"]),
- r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*/tests/ctf-traces/intersection/3eventsintersect/test_stream_0$",
+ r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*/tests/data/ctf-traces/intersection/3eventsintersect/test_stream_0$",
)
self.assertRegexpMatches(
str(streams[1]["port-name"]),
- r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*/tests/ctf-traces/intersection/3eventsintersect/test_stream_1$",
+ r"^7afe8fbe-79b8-4f6a-bbc7-d0c782e7ddaf \| 0 \| .*/tests/data/ctf-traces/intersection/3eventsintersect/test_stream_1$",
)
def test_trace_uuid_no_stream_class_id_no_stream_id(self):
self.assertEqual(len(streams), 1)
self.assertRegexpMatches(
str(streams[0]["port-name"]),
- r"^2a6422d0-6cee-11e0-8c08-cb07d7b3a564 \| .*/tests/ctf-traces/succeed/succeed1/dummystream$",
+ r"^2a6422d0-6cee-11e0-8c08-cb07d7b3a564 \| .*/tests/data/ctf-traces/succeed/succeed1/dummystream$",
)
dist_check_SCRIPTS = test_succeed
-# Expectation files
-EXTRA_DIST = \
- trace-smalltrace.expect \
- trace-simple.expect
-
# CTF trace generators
GEN_TRACE_LDADD = $(top_builddir)/src/ctf-writer/libbabeltrace2-ctf-writer.la
. "@abs_top_builddir@/tests/utils/diff.sh"
this_dir_relative="tests/plugins/src.ctf.fs/succeed"
-this_dir_src="$BT_SRC_PATH/$this_dir_relative"
+this_dir_src="$BT_SRC_PATH/tests/data/plugins/src.ctf.fs/succeed"
this_dir_build="$BT_BUILD_PATH/$this_dir_relative"
-succeed_trace_dir="$BT_CTF_TRACES/succeed"
+succeed_trace_dir="$BT_CTF_TRACES_PATH/succeed"
test_ctf_common_details_args="-p with-trace-name=no,with-stream-name=no"
+++ /dev/null
-Trace class:
- Stream class (ID 0):
- Packets have beginning default clock snapshot: Yes
- Packets have end default clock snapshot: Yes
- Supports discarded events: Yes
- Discarded events have default clock snapshots: Yes
- Supports discarded packets: No
- Discarded packets have default clock snapshots: No
- Default clock class:
- Name: default
- Frequency (Hz): 1,000,000,000
- Precision (cycles): 1
- Offset (s): 0
- Offset (cycles): 0
- Origin is Unix epoch: No
- Event class `ev` (ID 0):
- Payload field class: Structure (2 members):
- first: Signed integer (8-bit, Base 10)
- second: String
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream beginning:
- Trace:
- Stream (ID 0, Class ID 0)
-
-[Unknown]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream activity beginning
-
-[0 cycles, 0 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Packet beginning:
-
-[3600 cycles, 3600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -23
- second: saluuuut
-
-[8600 cycles, 8600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -22
- second: saluuuut
-
-[13,600 cycles, 13,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -21
- second: saluuuut
-
-[18,600 cycles, 18,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -20
- second: saluuuut
-
-[23,600 cycles, 23,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -19
- second: saluuuut
-
-[28,600 cycles, 28,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -18
- second: saluuuut
-
-[33,600 cycles, 33,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -17
- second: saluuuut
-
-[38,600 cycles, 38,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -16
- second: saluuuut
-
-[43,600 cycles, 43,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -15
- second: saluuuut
-
-[48,600 cycles, 48,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -14
- second: saluuuut
-
-[53,600 cycles, 53,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -13
- second: saluuuut
-
-[58,600 cycles, 58,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -12
- second: saluuuut
-
-[63,600 cycles, 63,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -11
- second: saluuuut
-
-[68,600 cycles, 68,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -10
- second: saluuuut
-
-[73,600 cycles, 73,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -9
- second: saluuuut
-
-[78,600 cycles, 78,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -8
- second: saluuuut
-
-[83,600 cycles, 83,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -7
- second: saluuuut
-
-[88,600 cycles, 88,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -6
- second: saluuuut
-
-[93,600 cycles, 93,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -5
- second: saluuuut
-
-[98,600 cycles, 98,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -4
- second: saluuuut
-
-[103,600 cycles, 103,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -3
- second: saluuuut
-
-[108,600 cycles, 108,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -2
- second: saluuuut
-
-[113,600 cycles, 113,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: -1
- second: saluuuut
-
-[118,600 cycles, 118,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: 0
- second: saluuuut
-
-[123,600 cycles, 123,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `ev` (Class ID 0):
- Payload:
- first: 1
- second: saluuuut
-
-[123,600 cycles, 123,600 ns from origin]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Packet end
-
-[Unknown]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream activity end
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream end
+++ /dev/null
-Trace class:
- UUID: 2a6422d0-6cee-11e0-8c08-cb07d7b3a564
- Stream class (ID 0):
- Packets have beginning default clock snapshot: No
- Packets have end default clock snapshot: No
- Supports discarded events: No
- Discarded events have default clock snapshots: No
- Supports discarded packets: No
- Discarded packets have default clock snapshots: No
- Event class `string` (ID 0):
- Payload field class: Structure (1 member):
- str: String
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream beginning:
- Trace:
- Class UUID: 2a6422d0-6cee-11e0-8c08-cb07d7b3a564
- Stream (ID 0, Class ID 0)
-
-[Unknown]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream activity beginning
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Packet beginning:
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `string` (Class ID 0):
- Payload:
- str: This is a test trace
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Event `string` (Class ID 0):
- Payload:
- str: with only two small events.
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Packet end
-
-[Unknown]
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream activity end
-
-{Trace 0, Stream class ID 0, Stream ID 0}
-Stream end
BT_BUILD_PATH="@abs_top_builddir@"
BT_BIN="${BT_BUILD_PATH}/src/cli/babeltrace2@EXEEXT@"
-BT_CTF_TRACES="${BT_SRC_PATH}/tests/ctf-traces"
+BT_CTF_TRACES_PATH="${BT_SRC_PATH}/tests/data/ctf-traces"
+BT_DEBUG_INFO_PATH="${BT_SRC_PATH}/tests/data/debug-info"
if [ "x${NO_SH_TAP}" = x ]; then
. "${BT_SRC_PATH}/tests/utils/tap/tap.sh"
export BABELTRACE_PYTHON_BT2_NO_TRACEBACK=1
export TEST_PLUGIN_PLUGINS_PATH="${BT_BUILD_PATH}/src/plugins"
export BABELTRACE_PLUGIN_PATH="${BT_BUILD_PATH}/src/plugins/ctf:${BT_BUILD_PATH}/src/plugins/utils:${BT_BUILD_PATH}/src/plugins/text"
-export TEST_CTF_TRACES_PATH="${BT_SRC_PATH}/tests/ctf-traces"
+export BT_CTF_TRACES_PATH
+
PYTHON_BUILD_DIR="${BT_BUILD_PATH}/src/bindings/python/bt2/build/build_lib"
TESTS_UTILS_PYTHON_DIR="${BT_SRC_PATH}/tests/utils/python"
export PYTHONPATH="${PYTHON_BUILD_DIR}:${TESTS_UTILS_PYTHON_DIR}"