2010-02-24 4 views
5

Quelqu'un sait comment placer un onglet ou une nouvelle ligne dans le message d'impression d'un point d'arrêt et le faire apparaître correctement? Jusqu'ici j'ai essayé '\ t' et '\ n' qui donnent la même chose dans la sortie de débogage. J'ai également essayé de placer 4 espaces, mais ils sont supprimés après que j'ai cliqué sur OK dans la boîte de dialogue 'When Breakpoint is Hit'. J'utilise VS.NET 2008 avec du code natif si cela fait une différence.Visual Studio insère les onglets/nouvelles lignes dans le message d'impression de point d'arrêt (tracepoint)?

Merci.

Répondre

2

Vous pouvez spécifier n'importe quel caractère dans le message en l'incluant dans des accolades. Par exemple, cela insérera une nouvelle ligne dans le message: {'\n'}. Le problème est que la valeur de ce caractère et les guillemets simples seront également imprimés. J'ai essayé de désactiver la sortie de la valeur du personnage avec toutes sortes de formatage d'expression, mais rien n'y fait.

C'est une solution un peu maladroite, mais cela fonctionne si vous avez besoin de fractionner une longue déclaration en plusieurs lignes. D'autres caractères sont OK, aussi bien. Mais ne mettez pas de chaînes ({"\r\n"}). Il semble que le débogueur VS ne peut imprimer que des caractères uniques, mais des littéraux de chaîne.

+0

Cela ne fonctionne pas pour moi (en utilisant VS 2012). Tout ce qui est imprimé est en fait la représentation en chaîne du caractère entre guillemets simples (''\ n''). Je pourrais vivre avec le fait que cela se manifeste en ** addition ** au saut de ligne désiré. Cependant, aucun saut de ligne n'est inséré. – IInspectable

+0

@IInspectable, vous avez raison. Il semble qu'ils l'ont réparé. J'ai essayé avec VS2013 et ça ne marche plus. –

0

Dans VS2010, vous pouvez coller dans un onglet que vous avez copié dans la boîte d'édition "Imprimer un message".

0

La seule façon que je pouvais créer une nouvelle ligne en sortie était comme suit de trace:

  1. Créer l'aide d'un marqueur de trace d'espace réservé pour le saut de ligne, par exemple BREAKME;
  2. Exportez le point d'arrêt en XML (voir aussi MSDN How to: Import and Export Breakpoints);
  3. modifier manuellement le XML et remplacer BREAKME avec une évasion CDATA, avec saut de ligne (s) que vous vouliez au lieu du marqueur:

    <![CDATA[ 
    
    ]]> 
    
  4. Retirez le point de trace de vos points d'arrêt et réimporter le XML.

OTOH, si vous utilisez le résultat pour le traitement de texte ultérieur, vous pouvez remplacer automatiquement votre marqueur aux étapes ultérieures, et vous enregistrer les étapes 2-4 ...

Disclaimer/communication: J'utilise Visual Studio chez Microsoft, mais je ne développe pas Visual Studio lui-même; ce que j'écris ici n'est pas approuvé par Microsoft et exprime uniquement mes opinions privées, etc.

Questions connexes