x86determiniser is a "simulator" with branch tracing, instruction tracing and deterministic timing for x86 32-bit and 64-bit programs on Windows and Linux. It operates by "syscall emulation" and runs native executables. There's a longer description on my website along with precompiled binaries.
C> x64determiniser.exe --inst-trace test.txt example.exe
test.txt will contain a list of all instructions executed by the "example.exe" program, excluding those in library code (not within the .exe file).
x64determiniser.exe --help
prints out a list of other options.