Prototype
void EMemory::TraceA( char *pszObjetEMemoryName = NULL );

void EMemory::TraceW( wchar_t *pszObjetEMemoryName = NULL );

void EMemory::Trace( TCHAR *pszObjetEMemoryName = NULL );

Ces fonctions affichent les informations synthétiques de l'objet, c'est à dire son statut, l'adresse de l'objet, de l'espace de travail et la taille de celui-ci.

Le premier prototype est à utiliser si l'on désire forcer l'utilisation de la fonction dans sa version Ascii, le second pour sa version Unicode.

Le troisième prototype utilise soit le format ASCII soit le format Unicode. Si votre projet est configuré pour utiliser le format ASCII, la chaîne de caractères pszObjetEMemoryName sera au format ASCII (char*), par contre si votre projet est configuré pour utiliser le format Unicode, la chaîne de caractères sera au format Unicode (wchar_t*).

Pour pouvoir utiliser cette fonction vous devez avoir activé l'objet ETrace de la librairie Eclat.

 

Argument

char *pszObjetEMemoryName = NULL
ou
wchar_t *pszObjetEMemoryName = NULL

nom de l'objet EMemory sous la forme d'une chaîne de caractères Ascii ou Unicode.

Il sert à plus facilement situer les informations relatives d'un objet parmi tous les traçages affichés dans la fenêtre de sortie du débugueur.

Si cette information ne vous intéresse pas cet argument peut être NULL (la fonction ne retournera pas d'erreur à ce propos).

 

Retour

aucun.

 

Exemple

Description :

Affichage des informations de quatre objets EMemory, 2 vièrges, 1 vide et 1 disponible. Le deuxième objet utilise la version Ascii, le troisième la version Unicode alors que le premier et le dernier utilisent celle qui est en corrélation avec le mode défini par le projet.

Code :

EMemory eMem0; // objet vièrge
EMemory eMem1; // objet vièrge
EMemory eMem2( 0 ); // objet vide
EMemory eMem3( 5 ); // objet disponible

eMem0.Trace();
eMem1.TraceA( "eMem1" );
eMem2.TraceW( L"eMem2" );
eMem3.Trace( _T("eMem3") );

Sortie :

### Object EMemory Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Free' (code '1').
# Buffer address='0x00000000', workspace size='0' byte(s).
### End #

### Object EMemory 'eMem1' Trace #
# Object address='0x0012F450', status='EMemory::ObjectStatus_Free' (code '1').
# Buffer address='0x00000000', workspace size='0' byte(s).
### End #

### Object EMemory 'eMem2' Trace #
# Object address='0x0012F438', status='EMemory::ObjectStatus_Empty' (code '2').
# Buffer address='0x00000004', workspace size='0' byte(s).
### End #

### Object EMemory 'eMem3' Trace #
# Object address='0x0012F420', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000006', workspace size='5' byte(s).
### End #

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E ..
  00 01 02 03 04
  ? ? ? ? ?

 

Voir aussi
void EMemory::TraceExA( char *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
void EMemory::TraceExW( wchar_t *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );
void EMemory::TraceEx( TCHAR *pszObjetEMemoryName=NULL, ulonglong ullOffset = 0, ulonglong ullOffsetSize = EMemory::SizeUpToEnd );

 

Minimum
Version 1.0.0
Objet inter-connectable ETrace v 1.0.0