Dagens tips 20170505
Postat: 5 maj 2017, 12:08:29
Jag jobbar mycket ofta med att debugga via en seriell port eller utskrifter på ett Memo, allt beroende på vilket system jag programmerar på.
Mycket ofta ska man kolla lite interna värden för att se var det skiter sig och rimligt ofta använder jag en systemvariabel:
#define DEBUG_PRINTOUT true
Andra ställen blir det så:
#if DEBUG_PRINTOUT
// Skriva ut något värde/status
#endif // DEBUG_PRINTOUT
Men ibland blir det mycket med alla utskrifter så jag har börjat (sedan ett bra tag) med att göra följande:
I koden gör jag sedan som ovan och när en rutin är skottsäker är det bara att ända DEBUG_THIS till false och då försvinner den rutin från debugutskriften. På det vis kan jag vara selektiv i utskriften på ett överskådligt sätt.
Man kan såklart kombinera med en total DEBUG-definition så att bara när den totala är true kan de andra vara det samma.
Då kan man slå på debug för dels rutin for rutin och dels globalt.
Mycket ofta ska man kolla lite interna värden för att se var det skiter sig och rimligt ofta använder jag en systemvariabel:
#define DEBUG_PRINTOUT true
Andra ställen blir det så:
#if DEBUG_PRINTOUT
// Skriva ut något värde/status
#endif // DEBUG_PRINTOUT
Men ibland blir det mycket med alla utskrifter så jag har börjat (sedan ett bra tag) med att göra följande:
Kod: Markera allt
#define DEBUG_THIS true
int Some_Function(int Some_Value)
{
...
}
#undef DEBUG_THIS
Man kan såklart kombinera med en total DEBUG-definition så att bara när den totala är true kan de andra vara det samma.
Då kan man slå på debug för dels rutin for rutin och dels globalt.