J'utilise arma Matrix et j'aimerais voir la valeur pendant le débogage. J'ajouter un fichier natvis comme suit:Personnalisez le débogage de tableau multidimensionnel dans Visual Studio 2015 avec le fichier .natvis
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="arma::Mat<*>">
<DisplayString>{{ Size = {n_rows} x {n_cols} }}</DisplayString>
<Expand>
<Item Name="[size]">n_elem</Item>
<ArrayItems>
<Direction>Backward</Direction>
<Rank>2</Rank>
<Size> $i==0?n_rows:n_cols </Size>
<ValuePointer>mem</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>
Cependant, cela ne fonctionne pas du tout.
Sooner Je relize le problème peut être
<Size> $i==0?n_rows:n_rows </Size>
J'essaie donc de le remplacer par l'un des énoncés suivants et il fonctionne
<size> $i==0?5:8 </Size>
<size> $i==0?n_rows:8 </Size>
<Size> $i==0?5:n_cols</Size>
Cependant, si je tente une des affirmations suivantes , Je ne reçois plus rien
<size> $i==0?n_rows:n_cols </Size>
<size> $i==0?n_rows:n_rows </Size>
Par ailleurs, j'ai retourné les messages de diagnostic de Natvis à "Erreur" dans les options mais rien n'est dans la liste des erreurs.
Merci pour toute aide
je crois comprendre que ce ne serait pas une erreur, cela signifie simplement que la fenêtre du débogueur ne pouvait pas reconnaître le paramètre tags/property spécifique sous ArrayItems, vous pouvez voir cet exemple sur la façon d'utiliser "ArrayItems Expansion" ici: https://code.msdn.microsoft.com/windowsdesktop/Writing-type-visualizers-2eae77a2 –
Merci Jack, mais il donne seulement un exemple de tableau 1D. En outre, j'ai lu l'explication de MSDN et ils ont utilisé la taille [$ i] dans le fichier , c'est-à-dire qu'ils stockent la taille dans un tableau 1 * 2 afin qu'il puisse être appelé sans une instruction if. Cependant, j'utilise armadillo et la taille de la matrice est définie par deux ints au lieu d'un tableau. –
user3003238
pouvez-vous me partager un échantillon simple en utilisant un lecteur? Je vais le déboguer de mon côté en utilisant le même environnement que le vôtre. –