No. Xmsgtrace doesn't require any changes to the client program.
No. Suppose you want to record the X protocol generated by an X program. Simply start Xmsgtrace and tell it to record messages by pressing the "Run" button. By default, Xmsgtrace records the X protocol of all future X programs that are run after the "Run" button is pressed. Then run your client program. That's it! Xmsgtrace will automatically record the protocol communication and save it in a text file. Xmsgtrace has menus so that you can filter out unwanted protocol messages.