mon environnement:
Selon la documentation de Creator Qt, il convient de disposer de l'ébrévage de Qt Creator de montrer la valeur renvoyée par une fonction lors de la sortie de la fonction. Extraits de http: // doc. qt.io/qtcreator/creator-debug-mode.html#local-variables-and-fonction-paramètres : p>
La vue Locaux est composée du volet locaux et de la valeur de retour Volet (caché lorsqu'il est vide). em> p> Chaque fois qu'un programme s'arrête sous la commande du débogueur, il récupère des informations sur le cadre de pile le plus haut et l'affiche dans la vue Locaux. Le volet des locaux affiche des informations sur les paramètres de la fonction dans ce cadre ainsi que les variables locales. Si la dernière opération du débogueur retournait d'une fonction après avoir appuyé sur Maj + F11, le volet Valeur de retour affiche la valeur renvoyée par la fonction. Em> p> Le problème est que je ne peux pas voir Le volet de retour (et donc la valeur renvoyée par la dernière fonction). p> Voici un exemple minimal: p> Après avoir compilé un projet minimal, j'ai défini un point d'arrêt dans i Donnez la commande pas dans em> (f11) à le débogueur. Dans le débogueur, je peux voir que le contrôle atteint la fonction appelée, Maintenant pour l'étape critique. Je donne la commande sortez em> (Shift + F11) au débogueur. Comme prévu, le contrôle retourne à l'appelant ( Alors, comment puis-je voir la valeur de retour? p> Voici le contenu de mon Compile Sortie em> Pane: p> principal () code>, lorsque
foo () code> est sur le point d'être appelé et de démarrer le débogueur (F5). Le débogueur s'arrête correctement au point d'arrêt: p>
foo () code>: p>
principal () code>), mais la valeur renvoyée par
foo () code> n'est pas affichée: p>
3 Réponses :
En haut du fichier, vous devez inclure la Qdebug de cette manière: P>
et donc avant le retour, vous devez imprimer la valeur renvoyée par la fonction FOO de cette manière: p>
qdebug () << valeur; p>
Impression sur la console, comme vous le suggérez, peut être utile, mais est une question complète. Ce que j'aimerais voir, c'est la valeur de retour de chaque fonction, car le code est en cours de débogage. Cela est possible dans la plupart des débuggeurs et devrait également être possible dans Qt Creator (selon le manuel QT Creator), mais pour une raison quelconque ne fonctionne pas pour moi.
Fonctionne pour moi, après l'arrêt du débogueur de la ligne 8, F10 (pas sur), et comme vous pouvez le constater que la valeur de retour est affichée sur le panneau de droite Entrez la description de l'image ici p>
Ce que vous voyez est a code>, une variable locale qui se trouve être attribuée à la valeur renvoyée de
foo () code>. Le débogueur a une fonctionnalité qui devrait vous permettre de voir la valeur renvoyée par une fonction lorsque vous quittez la fonction.
Ceci a maintenant été reconnu comme un bogue dans Qt Creator: https: //bugreports.qt .io / Browse / QTCreatorBug-21913 P>
Le code semble être optimisé par le compilateur, voudriez-vous nous montrer la ligne de commande utilisée par
cl -c ... code> dans l'onglet
compilation code>?
Je viens d'ajouter le contenu de ma Compiler la sortie i> dans mon message d'origine.
Vous pouvez désactiver l'optimisation du code en ajoutant ceci dans votre fichier .pro:
qmake_cxxflags_debug + = -od code> (avec configuration de débogage, pour le fichier source C ++)
Comme prévu, ajouter
-OD code> à
qmake_cxxflags_debug code> n'a pas aidé: le comportement est exactement le même que dans mon message d'origine. (Comme prévu, car
-OD code> est la valeur par défaut.)