[LUGOS] C debug funkcija

Damjan Pipan damjan.pipan at siol.net
Thu Aug 22 20:11:49 CEST 2002


Mislim, da naj bi MSVC podpiral overloadanje makrotov,
pa da problem neznanega stevila parametrov v makro resis 
z overloadanjem makrov.

----- Original Message ----- 
From: "Damir Dezeljin" <programing at nib.si>
To: <lugos-prog at lugos.si>
Cc: <lugos-list at lugos.si>
Sent: Thursday, August 22, 2002 7:46 PM
Subject: [LUGOS] C debug funkcija


> 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