Backtrack crash handler

Résolu/Fermé
scriptor - Modifié par scriptor le 18/10/2011 à 23:21
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 20 oct. 2011 à 10:28
Slt a tous,

Il m'arrive d'avoir ceci de tps a autre ::

OS : backtrack 4

[...]
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb610f6c0 (LWP 2734)]
(no debugging symbols found)
[...]
[...]
(no debugging symbols found)
[KCrash handler]
#6 0x0a3c0bcd in ?? ()
#7 0xb6e33f63 in QScrollView::drawContentsOffset ()
from /usr/lib/libqt-mt.so.3
#8 0xb6ee277a in QIconView::bufferedPaintEvent () from /usr/lib/libqt-mt.so.3
#9 0xb6ee2a21 in QIconView::eventFilter () from /usr/lib/libqt-mt.so.3
#10 0xb6d18443 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#11 0xb6d184ab in QObject::event () from /usr/lib/libqt-mt.so.3
#12 0xb6d526ec in QWidget::event () from /usr/lib/libqt-mt.so.3
#13 0xb6cb34f5 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#14 0xb6cb44ad in QApplication::notify () from /usr/lib/libqt-mt.so.3
#15 0xb69cc912 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#16 0xb6c4d66e in QApplication::sendEvent () from /usr/lib/libqt-mt.so.3
#17 0xb6c7e087 in QWidget::repaint () from /usr/lib/libqt-mt.so.3
#18 0xb6e34065 in QScrollView::repaintContents () from /usr/lib/libqt-mt.so.3
#19 0xb6ee2bb5 in QIconView::repaintItem () from /usr/lib/libqt-mt.so.3
#20 0xb6ee44f9 in QIconView::contentsMouseReleaseEvent ()
from /usr/lib/libqt-mt.so.3
#21 0xb6530c6e in KIconView::contentsMouseReleaseEvent ()
from /opt/kde3/lib/libkdeui.so.4
#22 0xb5fce349 in KonqIconViewWidget::contentsMouseReleaseEvent ()
from /opt/kde3/lib/libkonq.so.4
#23 0xb6e36650 in QScrollView::viewportMouseReleaseEvent ()
from /usr/lib/libqt-mt.so.3
#24 0xb6e35111 in QScrollView::eventFilter () from /usr/lib/libqt-mt.so.3
#25 0xb6ee2952 in QIconView::eventFilter () from /usr/lib/libqt-mt.so.3
#26 0xb6d18443 in QObject::activate_filters () from /usr/lib/libqt-mt.so.3
#27 0xb6d184ab in QObject::event () from /usr/lib/libqt-mt.so.3
#28 0xb6d526ec in QWidget::event () from /usr/lib/libqt-mt.so.3
#29 0xb6cb34f5 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#30 0xb6cb4712 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#31 0xb69cc912 in KApplication::notify () from /opt/kde3/lib/libkdecore.so.4
#32 0xb6c4d6be in QApplication::sendSpontaneousEvent ()
from /usr/lib/libqt-mt.so.3
#33 0xb6c4a5b0 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#34 0xb6c49862 in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#35 0xb6c5d894 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#36 0xb6ccbf00 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#37 0xb6ccbdc6 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#38 0xb6cb3b8f in QApplication::exec () from /usr/lib/libqt-mt.so.3
#39 0xb60d83f4 in kdemain () from /opt/kde3/lib/libkdeinit_konqueror.so
#40 0xb77a3494 in kdeinitmain () from /opt/kde3/lib/kde3/konqueror.so
#41 0x0804f4e9 in ?? ()
#42 0x0804fc8a in ?? ()
#43 0x08050302 in ?? ()
#44 0x08050dc2 in ?? ()
#45 0xb7527685 in __libc_start_main () from /lib/tls/i686/cmov/libc.so.6
#46 0x0804bac1 in ??

Je voulais savoir quels informations cette handles esseye de me dire ??

(type d'erreur. a quoi corresponde les ADDR ?? se sont des addr offset, c'est a cette adresse qui a planté ??, addr de pointeur ???, addr de la function, addr retour de function ??? .) HELP



Merci ,
A voir également:

1 réponse

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
19 oct. 2011 à 09:58
C'est la pile d'appel (cf cours de langage C) qui était active au moment du plantage. À un instant donné, une fonction f peut appeler une fonction g qui va appeler une fonction h. Dans ce cas en pile tu verras h en haut de pile, en dessous g, et en dessous f.

La pile est stockée en mémoire. Chaque élément de la pile a donc une adresse mémoire en fonction de sa position en pile (c'est pour ça que les adresses se suivent).

La place occupée par une fonction en pile est plus ou moins importante selon le prototype de la fonction (plus exactement par rapport à la taille des paramètres qui lui sont passés et la taille de son type de retour).

Si la pile se remplit trop (comprendre si le programme est mal développé, typiquement un appel récursif invoqué des centaines de fois) la pile peut déborder (stack overflow).

Concrètement ces adresses ne sont pas super utiles pour toi. C'est surtout utile pour le debugger (pour remettre en forme la pile d'appel sous une forme plus lisible).

Pour un développeur cette interprétation plus lisible (QApplication::exec() qui appelle QEventLoop::exec() etc...) est utile pour savoir dans quel contexte ton programme a planté. En particulier l'appel le plus haut dans la pile lui permet de savoir à quelle ligne précisément le programme a planté (cf #1) et la raison de se plantage (que tu as masqué également), par exemple l'accès à une zone mémoire invalide (segmentation fault).

Ainsi, il est toujours utile lorsqu'une application plante de reporter la pile d'appel. Ne pas la fournir revient en quelque sorte à dire aux gens qui corrigent les bugs "ça plante" mais sans leur dire "où et pourquoi", donc sans cette trace, ils ne peuvent pas faire grand chose !

Ici c'est manifestement une application KDE, donc à reporter sur : https://bugs.kde.org/

D'un point de vue utilisateur, ce genre d'erreur n'est pas sensé se produire. Quand une telle erreur survient, c'est qu'il y a un bug (c'est pour ça que tu es sensé le remonter si quelqu'un ne l'a pas déjà fait, car tu n'es sans doute pas la seule personne confrontée au problème !). Il faut donc mettre à jour ton système (en espérant que ces mises à jours corrigent le bug).

Si tu as déjà la dernière version il peut arriver qu'on downgrade le paquet mis en cause quand le bug est paralysant, mais de manière générale on évite de downgrader.
1
Merci mamiemando, pour ta réponse !!

pour le (cf #1) je n'ais rien caché les [...] c'était pour abrégé les lignes de (no debugging symbols found) j'ai tous mis, si j'ai ommis de le mettre ce n'était pas intentionnel.

mais en tous cas bien le merci ! ;)
0
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
20 oct. 2011 à 10:28
De rien :-) J'avais bien compris que c'était pour alléger le message, mais ce sont dans une pile d'appel les lignes les plus importantes et donc une partie de mon explication est devenue un peu abstraite puisque je n'avais pas les noms de fonctions en haut de pile (ni la cause de l'erreur) pour te fixer les idées. Mais bon je pense que tu as compris le principe ;-)

Bonne continuation !
0