Les macros sont généralement remplacées par leur contenu par le préprocesseur. Ainsi, le compilateur ne "voit" plus les noms des macros et ne peut donc pas créer d'informations de débogage dans le fichier ELF. Par conséquent, n'importe quel débogueur ne peut pas connaître les noms des macros.
Toutefois, certains compilateurs prennent en charge la génération d'informations de débogage pour les macros de préprocesseur. Par exemple. Si vous utilisez GCC avec le niveau de débogage 3 (gcc -g3
), le compilateur crée une section appelée ".debug_macro" dans votre fichier ELF.
Si votre fichier ELF contient la section ".debug_macro", vous devez dire à TRACE32 de considérer cette section lors du chargement de ELF, en utilisant l'option "/ MACRO". Donc, vous chargez votre exemple ELF avec
Data.LOAD.Elf * /MACRO
Vous pouvez alors voir toutes vos macros préprocesseur dans la fenêtre sYmbol.List.MACRO
ou utiliser l'un d'eux dans la fenêtre Var.WATCH
, ou les accès à la fonction Var.VALUE()
ou les imprimer avec la commande Var.PRINT
. E.g .:
Var.Watch UINT32_MAX
Var.PRINT UINT32_MAX
PRINT %Decimal Var.VALUE(UINT32_MAX)