Position dependent code
If the executable was compiled as position dependent code, the addresses will not change - they will remain the same in process' virtual memory each time you run it. In this case, it simply suffices to find these addresses once during the runtime and they won't change.
Position independent code
In this (more likely) case, the ...
Another way this could be achieved is by using the Stacktrace function and then printing the arguments' locations - something like this:
dprintf( "%08p %08p %08p %08p %08p %s",
According to Microsoft Docs, the ABI for x64 Windows looks like this:
The x64 Application Binary Interface (ABI) uses a four-register fast-call calling convention by default. Space is allocated on the call stack as a shadow store for callees to save those registers. There's a strict one-to-one correspondence between the arguments to a function call and ...
There is no such functionality in x64dbg out of the box, but we can make your own by writing a plugin! There are many examples (often with source code) available on http://plugins.x64dbg.com.
In this case you will want to register a callback for CB_STEPPED, which gets called after every step. The basic functionality could look something like this: