Une autre nouvelle fonctionnalité qui ravira les programmeurs d'applications multi-threads est le « non-stop debugging » qui permet d'examiner l'état d'un thread sans interrompre l'exécution des autres files d'exécutions. Quant à ceux qui préfèrent avoir un thread par processus, GDB gère maintenant les applications multi-processus.
Il est à noter que ces fonctionnalités semblent être principalement le fait de Marc Khouzam et Francois Chouinard d'Ericsson qui ont également modifié le greffon Eclipse CDT en conséquence.
Aller plus loin
- annonce de GDB 7.0 (11 clics)
- déverminage à rebours dans GDB (17 clics)
- Présentation d'Ericsson concernant les nouvelles fonctionnalité et leur intégration à Eclipse CDT (8 clics)
- Présentation de Bil Lewis pour Google concernant le déverminage à rebours dans ODB (1 clic)
- Papier de Bil Lewis concernant le déverminage à rebours (6 clics)
- section du manuel GDB décrivant le mode non-stop (15 clics)
# hein ?
Posté par DLFP est mort . Évalué à -6.
DLFP >> PCInpact > Numerama >> LinuxFr.org
[^] # Re: hein ?
Posté par Thomas Debesse (site web personnel) . Évalué à 8.
ce commentaire est sous licence cc by 4 et précédentes
[^] # Re: hein ?
Posté par DLFP est mort . Évalué à -1.
DLFP >> PCInpact > Numerama >> LinuxFr.org
[^] # Re: hein ?
Posté par JoeBlack . Évalué à 3.
Parce que bon... il faut choisir, soit on utilise le français et on s'y tient en explicitant les termes, soit on utilise le mot (anglais certes) utilisé par la quasi totalité des développeurs français, mais on évite de mélanger les deux. (ou alors, on utilise les guillemets partout autour d'une des deux locutions...)
Cela dit, j'aime bien ce mot ^^
[^] # Re: hein ?
Posté par Krunch (site web personnel) . Évalué à 7.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: hein ?
Posté par gaaaaaAab . Évalué à 4.
[^] # Re: hein ?
Posté par zerkman (site web personnel) . Évalué à 7.
Si on commence à avoir des francisations concurrentes, on n'a pas fini ;)
[^] # Re: hein ?
Posté par ǝpɐןƃu∀ nǝıɥʇʇɐW-ǝɹɹǝıԀ (site web personnel) . Évalué à 5.
« IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace
# À rebours?
Posté par Alban Crequy (site web personnel) . Évalué à 6.
1. a = scanf ("%d\n");
2. printf ("a=%d\n", a);
3. a = scanf ("%d\n");
4. printf ("a=%d\n", a);
Imaginons un breakpoint sur 4. puis qu'on éxécute à revers jusqu'à 2.. Comment GDB peut-il savoir la valeur de la variable a?
Ça marche aussi quand il y a des entrées/sorties? Comment on revient en arrière quand on débugge un serveur web et qu'on a écrit quelque chose sur la socket du browser? GDB téléphone au browser et lui dit "revient en arrière, s'il te plait?"
[^] # Re: À rebours?
Posté par tyoup . Évalué à 3.
[^] # Re: À rebours?
Posté par tyoup . Évalué à 8.
désolé pour le bug mais je ne peux pas remonter dans le temps
[^] # Re: À rebours?
Posté par Batchyx . Évalué à 2.
[^] # Re: À rebours?
Posté par patrick_g (site web personnel) . Évalué à 4.
Regarde ce commentaire : http://lwn.net/Articles/356151/
"You're thinking of checkpoint/restart. This is completely different.
The present "reverse debugging" feature set allows you to do reverse-step, reverse-next, reverse-continue etc., running backward to any breakpoint or watchpoint, or just stepping backward by a single instruction if you choose. You're not restricted to stopping only at previously designated checkpoints".
[^] # Re: À rebours?
Posté par Kerro . Évalué à 10.
Ca existe depuis des années. Je me souviens l'avoir eu dans les années 90 avec Turbo Debugger de Borland en 1991 ou 1992, ainsi que dans le débogueur de Watcom C que j'avais avec OS/2 Warp mi-1995.
[^] # Re: À rebours?
Posté par Krunch (site web personnel) . Évalué à 5.
Par contre il me semble que ODB garde bien une trace de tout l'état du programme à chaque instruction (comme s'il était en mode « target record » en permanence donc).
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: À rebours?
Posté par Pierre Jarillon (site web personnel) . Évalué à 8.
Quand il y a des mots français qui signifient exactement la même chose, on peut les employer !
[^] # Re: À rebours?
Posté par renoo . Évalué à 2.
On stocke quelques octets par instruction exécutée, ce qui peut quand même faire beaucoup ; cela doit souvent ralentir l'exécution d'un bon facteur 10) mais je pense que le jeu en vaut vraiment la chandelle.
[^] # Re: À rebours?
Posté par Krunch (site web personnel) . Évalué à 3.
C'est juste qu'au final ça revient au même qu'à stocker tout l'état à chaque instruction, la manière dont c'est « compressé » ne sont que des « détails » d'optimisation.
pertinent adj. Approprié : qui se rapporte exactement à ce dont il est question.
[^] # Re: À rebours?
Posté par zerkman (site web personnel) . Évalué à 2.
Surtout que c'est quand même pas impossible de faire ça même après un point d'arrêt, si le code compilé est prévu pour être réversible (moyennant l'utilisation d'une option spéciale du compilo), le programme gardant en mémoire les résultats intermédiaires s'ils sont nécessaires pour assurer le reverse debug.
[^] # Re: À rebours?
Posté par Batchyx . Évalué à 4.
* Avoir assez d'information, c'est par exemple retenir ce que les E/S ont produit.
[^] # Re: À rebours?
Posté par lolop (site web personnel) . Évalué à 1.
Mais pour tout ce qui est purement calculatoire, oui.
Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN
[^] # Re: À rebours?
Posté par djano . Évalué à 3.
C'était l'approche choisie.
Quand à lui, l'omniscient debugger pour Java enregistre des informations lors de l'exécution du programme. Et lorsque l'on fait un pas en arrière, il consulte juste ce qui avait été enregistré, et utilise juste cette mémoire pour revenir en arrière. Il était possible de paramétrer la quantité de données que le debugger peut utiliser pour se rappeler les états précédents.
Je pense que l'approche 1 convient à un programme bas niveau alors que l'approche 2 convient à un programme plus haut niveau. Le programme bas niveau doit se rappeler plus de choses.
# reverse
Posté par fcartegnie . Évalué à 5.
Et aussi pour faire du reverse engineering sur des softs proprios dont le code a été pourri de code inutile.
# gdb à travers irc
Posté par billiob . Évalué à 8.
Un petit plugin a été écrit par un développeur gnome, que l'on peut trouver sur son blog :
http://blogs.gnome.org/alexl/2009/10/09/gdb-over-irc/
Pour avoir fait ce dur processus de déboggage par irc, « à l'ancienne », je ne peux que saluer l'initiative.
[^] # Re: gdb à travers irc
Posté par dguihal . Évalué à 3.
# Si même les nobles s'y mettent...
Posté par windu.2b . Évalué à 4.
Un nom à particule qui développe un déboggueur ?!?
====>[]
[^] # Re: Si même les nobles s'y mettent...
Posté par Sylvain Sauvage . Évalué à 5.
(En passant, la particule n’est pas synonyme de noblesse et inversement, monsieur _2_b.)
[^] # Re: Si même les nobles s'y mettent...
Posté par windu.2b . Évalué à 4.
[^] # Re: Si même les nobles s'y mettent...
Posté par psychoslave__ (site web personnel) . Évalué à 2.
[^] # Re: Si même les nobles s'y mettent...
Posté par Grunt . Évalué à 7.
THIS IS JUST A PLACEHOLDER. YOU SHOULD NEVER SEE THIS STRING.
[^] # Re: Si même les nobles s'y mettent...
Posté par windu.2b . Évalué à 2.
"Le 16 juillet 2004, il est anobli par la reine d'Angleterre Élizabeth II lors d'une cérémonie d'investiture à Londres où il reçoit le titre de chevalier commandeur de l'Ordre de l'Empire britannique. Ce titre, classé deuxième dans le classement des décorations, lui est attribué en reconnaissance de services rendus pour « le développement global d'Internet »."
(source : Tim_Berners-Lee)
Mais pour pas faire de jaloux :
"Le 2 mars 2005, Bill Gates est anobli par la reine Élisabeth II du Royaume-Uni au grade de chevalier d’honneur de l’ordre de l'Empire britannique pour sa contribution aux entreprises britanniques et pour les efforts qu'il déploie à combattre la pauvreté dans le monde. Toutefois, n'étant pas citoyen d'un pays du Commonwealth, il ne peut préfixer son nom du titre Sir. Il peut cependant ajouter les lettres KBE (Knight of British Empire/Chevalier de l'Empire britannique) à la suite de son nom."
(source Bill_Gates)
[^] # Re: Si même les nobles s'y mettent...
Posté par fabricius . Évalué à 4.
Ben et pourquoi pas ? Je vois pas le rapport.
# Pretty printing
Posté par Étienne . Évalué à 6.
(gdb) print s
$1 = {
static npos = 4294967295,
_M_dataplus = {
<std::allocator> = {
<__gnu_cxx::new_allocator> = {<No data fields>}, <No data fields>},
members of std::basic_string<char, std::char_traits, std::allocator >::_Alloc_hider:
_M_p = 0x804a014 "abcd"
}
}
On aura :
(gdb) print s
$2 = "abcd"
Je pense qu'on va rapidement avoir des scripts python pour afficher de façon plaisante les éléments la STL ou de Qt.
[1]. http://sourceware.org/gdb/current/onlinedocs/gdb_24.html#SEC(...)
[^] # Re: Pretty printing
Posté par Étienne . Évalué à 2.
J'aurai dû vérifier avant mais dans le trunk de gcc[1], on trouve déjà des choses pour la STL. Exemple (elem est un std::string et vect est un vecteur de std::string) :
(gdb) print elem
$1 = "bonjour"
(gdb) print vect
$2 = std::vector of length 0, capacity 0
(gdb) next
(gdb) print vect
$3 = std::vector of length 1, capacity 1 = {"bonjour"}
(gdb) next
(gdb) print
$4 = std::vector of length 2, capacity 2 = {"bonjour", "toto"}
[1].http://gcc.gnu.org/viewcvs/trunk/libstdc%2B%2B-v3/python/lib(...)
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.