Lisp macros are compile-time generated code (think "small compiler plugins"); nothing happens at runtime in a compiled implementation.
More importantly, and to tie this back to the OP's comment, I would strongly recommend to implement any non-trivial macro as a "shell" which delegates to a normal function (cf. eval-when); that makes it much easier to debug/trace expansions from the REPL.