Desde mi búsqueda actual hasta ahora (aunque es posible que me haya perdido algo), debo estar de acuerdo con Devart en que no puede depurar funciones UDF.
Un consejo adicional para darle es usar el stderr para la depuración. He creado algo bastante simple para trabajar:
void udf_debug( char *msg, ... ) {
#ifdef DEBUG
va_list ap;
va_start(ap, msg);
vfprintf(stderr, msg, ap);
va_end(ap);
fflush(stderr);
#endif
}