Je veux imprimer la longueur totale d'une chaîne de caractères C dans GDB. Par défaut, elle est abrégée, comment puis-je forcer GDB à imprimer la chaîne entière ?
Réponse
Trop de publicités?
mrtimdog
Points
97
Utilisation de set elements ...
n'est pas toujours le meilleur moyen. Il serait utile qu'il y ait un set string-elements ...
.
J'utilise donc ces fonctions dans mon .gdbinit :
define pstr
ptype $arg0._M_dataplus._M_p
printf "[%d] = %s\n", $arg0._M_string_length, $arg0._M_dataplus._M_p
end
define pcstr
ptype $arg0
printf "[%d] = %s\n", strlen($arg0), $arg0
end
Mises en garde :
- La première est dépendante de la librairie c++ car elle accède aux membres de std::string, mais elle est facilement ajustable.
- La seconde ne peut être utilisée que sur un programme en cours d'exécution car elle appelle strlen.
- Réponses précédentes
- Plus de réponses