blob: b711facaca08797697b38fc5640f594fbcc224f4 [file] [log] [blame]
from debuginfo_trace_writer import DebugInfoTraceWriter
import sys
'''
Generate a trace with two processes, to make sure that the viewer properly
takes vpid into account.
'''
if len(sys.argv) < 2:
print("Please provide trace output path.", file=sys.stderr)
sys.exit(1)
def timestamp_generator():
ts = 1
while True:
yield ts
ts += 1
vpid1 = 1337
vpid2 = 2001
ts = timestamp_generator()
gen = DebugInfoTraceWriter(sys.argv[1])
baddr = 0x400000
memsz = 0x10000
function_addr = baddr + 0x100
gen.write_lttng_ust_statedump_start(next(ts), 0, vpid1)
gen.write_lttng_ust_statedump_start(next(ts), 0, vpid2)
gen.write_lttng_ust_statedump_bin_info(next(ts), 0, vpid1, baddr, memsz, "/tmp/foo", has_build_id=True, has_debug_link=True)
gen.write_lttng_ust_statedump_bin_info(next(ts), 0, vpid2, baddr, memsz, "/tmp/bar", has_build_id=True, has_debug_link=True)
gen.write_lttng_ust_statedump_build_id(next(ts), 0, vpid2, baddr, "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb")
gen.write_lttng_ust_statedump_build_id(next(ts), 0, vpid1, baddr, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")
gen.write_lttng_ust_statedump_debug_link(next(ts), 0, vpid1, baddr, 0, "/tmp/debuglink1")
gen.write_lttng_ust_statedump_debug_link(next(ts), 0, vpid2, baddr, 0, "/tmp/debuglink2")
gen.write_lttng_ust_statedump_end(next(ts), 0, vpid1)
gen.write_lttng_ust_statedump_end(next(ts), 0, vpid2)
gen.write_dummy_event(next(ts), 0, vpid1, function_addr)
gen.write_dummy_event(next(ts), 0, vpid2, function_addr)
gen.flush()