		i	synthesize instructions events
		b	synthesize branches events
		c	synthesize branches events (calls only)
		r	synthesize branches events (returns only)
		x	synthesize transactions events
		e	synthesize error events
		d	create a debug log
		g	synthesize a call chain (use with i or x)
		l	synthesize last branch entries (use with i or x)
		s       skip initial number of events

	The default is all events i.e. the same as --itrace=ibxe

	In addition, the period (default 100000) for instructions events
	can be specified in units of:

		i	instructions
		t	ticks
		ms	milliseconds
		us	microseconds
		ns	nanoseconds (default)

	Also the call chain size (default 16, max. 1024) for instructions or
	transactions events can be specified.

	Also the number of last branch entries (default 64, max. 1024) for
	instructions or transactions events can be specified.

	It is also possible to skip events generated (instructions, branches, transactions)
	at the beginning. This is useful to ignore initialization code.

	--itrace=i0nss1000000

	skips the first million instructions.
