Freigeben über


Kann ich Enumerationen in meinem Ablaufverfolgungscode verwenden?

Sie können Enumerationen verwenden, um aussagekräftige Begriffe in Ihren Ablaufverfolgungsmeldungen anzuzeigen, anstatt ganzzahlige Werte anzuzeigen, die Benutzer decodieren müssen.

Definieren Sie beispielsweise die folgende Enumeration in Ihrem Code:

#define SPECIALDAY  0xF0000000
enum _wday {
  sunday = 0,
  monday = 55,
  tuesday = 3,
  wednesday = 1 | SPECIALDAY  ,
  thursday =  7 | SPECIALDAY,
  friday =  5,
  saturday = 6
};

Um die Enumeration in Ihren Ablaufverfolgungsmeldungen zu verwenden, fügen Sie der Quelldatei die folgenden Konfigurationsdaten hinzu. Dieser Code weist WPP an, die Symbolinformationen für die Enumeration zu extrahieren und die Namen zu verwenden, die Sie beim Anzeigen des protokollierten Enumerationswerts definiert haben.

// begin_wpp config 
// CUSTOM_TYPE(dayset, ItemEnum(_wday) );
// end_wpp

Anschließend können Sie den benutzerdefinierten Dayset-Typ in der Formatzeichenfolge einer Ablaufverfolgungsnachricht verwenden. Beispiel:

 _wday p = wednesday;

 DoTraceMessage(NOISE " %!dayset!", p);

Da Sie schließlich Konfigurationsdaten zu einer Nicht-Konfigurationsdatei hinzugefügt haben (eine andere Datei als eine .ini-Datei), fügen Sie den Parameter -scan zum RUN_WPP Makro hinzu, das den WPP-Präprozessor aufruft. Dadurch wird WPP benachrichtigt, nach Konfigurationsdaten in der angegebenen Datei zu suchen. Beispiel:

RUN_WPP -scan:trace.c