C debug funkcija
Damir Dezeljin
programing at nib.si
Thu Aug 22 19:46:01 CEST 2002
Ciao.
Kaj mi zna kdo svetovati kako naj bi naredil eno PORTABILNO debug
funkcijo, ki bi delala nekaj podobnega kot sledeca (ta dela samo z GCC):
----
#ifdef DEBUG
#define DbgPrint(fmt, a...) _DbgPrint(fmt, ## a)
#else
#define DbgPrint(a, b, ...) ;
#endif
void _DbgPrint(int level, char *fmt, ...) {
va_list argList;
char timeBuffer[LEN];
va_start(argList, fmt);
vfprintf(stdout, fmt, argList);
fprintf(stdout, "\n");
va_end(argList);
return;
}
----
Vsak nasvet je dobrodosel.
Imam eno idejo ... kaj pa ce stvar naredim tako:
----
#ifdef DEBUG
#define DDL 1
#else
#define DDL 0
#endif
void DbgPrint(int level, char *fmt, ...) {
do {
if (DDL) {
va_list argList;
char timeBuffer[LEN];
va_start(argList, fmt);
vfprintf(stdout, fmt, argList);
fprintf(stdout, "\n");
va_end(argList);
return;
}
} while(0);
}
----
Kaj v tem primeru ce ne bom kompajlal z -DDEBUG, kaj kdo ve ce so
MS VC, HP UX, gcc ... kompajlerji dovolj 'pameteni', da bodo to funkcijo
kar preskocli in da ne bo nic overheda? << ja vzami debugger in poglej ...
poskusam z GDB in ne ugotovim nic pametnega ... enak rezultat imam z wdb
na HP UX ... mogoce pa debugerja ne znam uporabljat :)
Lp,
Dezo
More information about the lugos-list
mailing list