Sida 1 av 1

Bästa sättet för debugutskrift

Postat: 17 januari 2012, 09:03:27
av thepirateboy
Ofta när man jobbar med mikroprocessorer så har man uart:n kopplad till datorn
för att kunna skriva ut diverse debugutskrifter. När det senasre blir dags för release
vill man kunna "avaktivera" dessa vid kompilering för att få snabbare och mindre kod.

Normalt brukar jag skriva nåt i stil med:

Kod: Markera allt

#if (DEBUG > 0) 
                    com_send_string("Sleep command received\r\n");  
#endif 
Nackdelen med denna metod är att jag tycker koden blir allmänt rörig med alla dessa defines
för varje debugutskrift.

Jag har försökt skriva allt på en rad men kompilatorn tycker inte om detta.

Finns det något bättre sätt att göra detta på, t ex något som bara tar upp en rad?

Re: Bästa sättet för debugutskrift

Postat: 17 januari 2012, 09:14:49
av johano
Du kan ju definiera ett macro OutputDebugString som villkorar DEBUG, typ såhär:

Kod: Markera allt


#ifdef DEBUG
#define OutputDebugString(msg) com_send_string(msg)
#else
#define OutputDebugString(msg)
#endif

och sedan bara använda:

Kod: Markera allt

OutputDebugString("Sleep command received\r\n");
i koden.

/johan

Re: Bästa sättet för debugutskrift

Postat: 17 januari 2012, 09:23:27
av Nerre
Ja, att göra det som ett makro är väl antagligen bäst (så slipper man få med det i koden när man stänger av debug).

Det går ju att göra det som en funktion också, men jag vet inte om kompilatorn är tillräckligt smart för att optimera bort funktionsanrop som inte gör nåt...

Re: Bästa sättet för debugutskrift

Postat: 17 januari 2012, 10:36:18
av thepirateboy
Ja, det var ju smart. Tack för det!