Da minha pesquisa atual até agora (embora eu possa ter perdido alguma coisa), tenho que concordar com Devart que você não pode depurar funções UDF.
Um conselho extra para lhe dar é usar o stderr para depuração. Eu criei algo bastante simples para trabalhar:
void udf_debug( char *msg, ... ) {
#ifdef DEBUG
va_list ap;
va_start(ap, msg);
vfprintf(stderr, msg, ap);
va_end(ap);
fflush(stderr);
#endif
}