The dtTracen macros take n arguments in addition to a pointer to a dt object. The effect of all of them is to save the trace variables given as arguments to the trace buffer, and advance the buffer pointer. When the trace buffer becomes full, it is flushed to disk and the buffer pointer is reset to the start of the trace buffer.
void dtTracen(dt *dtobj, args,...)