J'essaye de comprendre un problème dans mon code C++ et ai DDD pour déboguer avec sur une machine de Sun. Je suis obligé d'utiliser des chaînes selon certaines normes que nous avons. Mais chaque fois que DDD rencontre une variable de chaîne, elle apparaît toujours comme vide. Je veux me rappeler avoir eu le même problème en utilisant CVD auparavant sur un SGI.
À moins de réécrire mon code pour supprimer une chaîne, y a-t-il autre chose que je pourrais essayer/utiliser?Le compte DDD peut-il contenir des chaînes?
5
A
Répondre
1
Jetez un oeil here
Ils le résoudre en mettant en œuvre une fonction d'assistance qui peut être utilisé par gdb (devrait également fonctionner pour DDD car il utilise gdb)
1
p variablename.c_str()
ou
display variablename.c_str()
0
Fondamentalement, vous devez créer une fonction wrapper qui imprime votre chaîne, en lui passant une adresse mémoire:
void gs(string &s) { cout << s << endl; }
puis dans gdb:
call gs(somevariable)
Voulez-vous dire C++ 'chaîne' de classe ou seulement des chaînes en général? –
Quelle version de gdb? – Potatoswatter