We present a hardware assisted approach for constructing software traces in binary translation systems. The new approach leverages an enhanced performance monitoring hardware (PMU) with a combination of hardware techniques: branch prediction information, branch trace collection, and a hardware signature representing the calling context. Overall, the combined approach significantly reduces the time and overhead in building traces, while capturing high-quality traces. Our approach significantly reduces the time to build traces, compared to previous research which exploited a sampling PMU mechanism. The calling context signature could also be used in other applications such as debugging, program understanding, security and other optimizations. Copyright 2013 ACM.