1. A method for tracing thread bus transactions in a multiprocessor system, comprising: decoding, by a processor, a first thread instruction of a thread, the thread comprising an ordered series of thread instructions; in the event the first thread instruction is a set bus trace enable bit (BTEB) instruction, setting a bus trace enable bit corresponding to the thread; in the event the BTEB is set: determining whether the first thread instruction is a trace-eligible instruction; and in the event the first thread instruction is a trace-eligible instruction, and the BTEB is set, setting a snoop tag trace enable bit (STTEB); monitoring bus transactions, by a hardware trace monitor (HTM), wherein each bus transaction comprises a STTEB; in the event a monitored bus transaction comprises a set STTEB, storing the bus transaction as trace data; in the event a monitored bus transaction comprises a reset STTEB, not storing the bus transaction as trace data; and determining whether an interrupt is active and, in the event an interrupt is active, storing the BTEB state with a process state information.