Y at-il un analogue du mot-clé C++ this
, qui peut être utilisé dans les expressions natvis lors du débogage du code C?Comment faire référence à une variable elle-même à partir de l'expression natvis en langage C?
Je voudrais faire ce qui suit et n'ai pas l'esprit comment le faire sans this
.
Tenez compte que nous avons une struct en C:
typedef struct
{
int state;
//other fields follow
}TCB;
Il y a aussi variable globale:
TCB* Running;
Je veux faire natvis règles qui montreront l'état de l'objet en fonction de la state
champ et Running
variable. Si c'était C++, j'écrirais:
<Type Name="TCB">
<DisplayString Condition="state==0">Empty</DisplayString>
<DisplayString Condition="state==0x80 && Running!=this">Ready</DisplayString>
<DisplayString Condition="state==0x80 && Running==this">Running</DisplayString>
</Type>
Comment cela peut-il être fait en C?
Merci!
P.S. Le fichier natvis est utilisé dans VSCode avec le débogueur gdb.
Puisqu'il n'y a pas d'objets dans C, il n'y a pas besoin de 'this' non plus. En C++/Java, 'this' est utilisé pour faire référence à l'objet en utilisant une de ses méthodes. En C, toutes les fonctions sont globales et non associées aux structures. – DyZ
Je sais comment 'ceci 'est utilisé en C++/Java :), et je comprends qu'il est inutile pour le langage C, mais nous parlons ici de fichiers natvis pour le débogueur, pas d'expressions en langage C. J'ai montré une partie du fichier natvis qui avait besoin du mot clé 'this'. Savez-vous comment le faire sans «ceci»? –