The MxTrace macro wraps the _MxTrace function so that we don't call it on non-debug builds. Similar to the mechanism in <assert.h>.
Our MSVC doesn't support variable arguments in macros, so we use simple string replacement on the args parameter. We could create separate macros for the number of parameters needed (as in <crtdbg.h>) or just try to suppress this warning.