2017-09-12 2 views
3

J'ai un objet std::fstream dans mon code, disons std::fstream input pour lire les valeurs des fichiers. Comment puis-je vérifier l'état de l'entrée dans le débogueur gdb? J'ai essayé print input.fail(), mais il dit:en utilisant gdb sur fstream de C++

couldn't find method std::ifstream::fail 

Répondre

1

Ceci est probablement parce que vous n'avez pas installé symboles de débogage pour libstdC++ (ce qui est le cas std::fstream réside).

Si vous essayez d'imprimer input variable que vous obtiendrez quelque chose comme ça, sans symboles de débogage pour libstdC++:

(gdb) p input 
$1 = <incomplete type> 

J'ai reproduit cette question sur Fedora et la question allé (input variable a été imprimé avec succès et input.fail() a été appelé) après avoir installé les informations de débogage avec cette commande:

sudo debuginfo-install libstdc++ 

Voir aussi la question similaire pour std::stringstream ici:
https://www.reddit.com/r/learnprogramming/comments/5dwtbb/gdb_looking_into_streams/