Prototype
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 );

Ces fonctions affichent les informations étendues de l'objet. En plus des informations affichées par la fonction Trace, elle ajoute le contenu des données de l'espace de travail ou d'un intervalle de travail.

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).

ulonglong ullOffset = 0

offset de départ de l'intervalle de travail à afficher.

ulonglong ullOffsetSource = EMemory::SizeUpToEnd

étendue de l'intervalle de travail à afficher.

 

 

Retour

aucun.

 

Exemple

Description :

Affichage des informations étendues de quatre objets EMemory, 1 vièrge, 1 vide et 2 disponibles. 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.

Le dernier taçage affiche les données de l'objet contenues de l'offset 1 sur une étendue de 3 octets alors que le troisième affiche toutes les données.

Code :

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

eMem0.TraceEx();
eMem1.TraceExA( "eMem1" );
eMem2.TraceExW( L"eMem2" );
eMem3.TraceEx( _T("eMem3"), 1, 3 );

Sortie :

### Object EMemory Trace #
# Object address='0x0012F468', status='EMemory::ObjectStatus_Free' (code '1').
# Buffer address='0x00000000', workspace size='0' byte(s).
# No data to show from offset '0x00000000' to offset '0x00000000', length=0 byte(s).
### End #

### Object EMemory 'eMem1' Trace #
# Object address='0x0012F450', status='EMemory::ObjectStatus_Empty' (code '2').
# Buffer address='0x00000004', workspace size='0' byte(s).
# No data to show from offset '0x00000000' to offset '0x00000000', length=0 byte(s).
### End #

### Object EMemory 'eMem2' Trace #
# Object address='0x0012F438', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x00000006', workspace size='5' byte(s).
# Array data from offset '0x00000000' to offset '0x00000004', length=5 byte(s).
# Offset start 0x00000000 CD CD CD CD CD .. .. .. .. .. .. .. .. .. .. .. [ÍÍÍÍÍ]
### End #

### Object EMemory 'eMem3' Trace #
# Object address='0x0012F420', status='EMemory::ObjectStatus_Enable' (code '3').
# Buffer address='0x0000000B', workspace size='5' byte(s).
# Array data from offset '0x00000001' to offset '0x00000003', length=3 byte(s).
# Offset start 0x00000001 42 43 44 .. .. .. .. .. .. .. .. .. .. .. .. .. [BCD]
### End #

Vue :

00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
  00 01 02 03 04 00 01 02 03 04
  ? ? ? ? ? 41
A
42
B
43
C
44
D
45
E

 

Voir aussi
void EMemory::TraceA( char *pszObjetEMemoryName=NULL );
void EMemory::TraceW( wchar_t *pszObjetEMemoryName=NULL );
void EMemory::Trace( TCHAR *pszObjetEMemoryName=NULL );

 

Minimum
Version 1.0.0
Objet inter-connectable ETrace v 1.0.0