От текущото ми търсене досега (въпреки че може да съм пропуснал нещо) трябва да се съглася с Devart, че не можете да отстранявате грешки в UDF функции.
Един допълнителен съвет, който трябва да ви дам, е да използвате stderr за отстраняване на грешки. Създадох нещо доста лесно за работа:
void udf_debug( char *msg, ... ) {
#ifdef DEBUG
va_list ap;
va_start(ap, msg);
vfprintf(stderr, msg, ap);
va_end(ap);
fflush(stderr);
#endif
}