Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/01/2009, à 10:28

jde3

Paquets de debug

Bonjour à vous,

J'ai de temps en temps des bugs de Konqueror que je ne peut pas reporter car je n'ai pas les bons paquets de debug d'installés donc j'ai pleins de "??" dans mon gestionnaire de pannes.

Je vous en donne un exemple :

Application : Konqueror (konqueror), signal SIGSEGV
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
(no debugging symbols found)
[Thread debugging using libthread_db enabled]
[New Thread 0xb60bf8d0 (LWP 25051)]
[New Thread 0xaf33eb90 (LWP 25121)]
[KCrash handler]
#6  0xb74342ab in QString::operator== () from /usr/lib/libQtCore.so.4
#7  0xb40d8cd0 in KHTMLPart::restoreState (this=0xbc52228, stream=@0xbf8c050c)
    at /usr/include/qt4/QtCore/qstring.h:372
#8  0xb41039fe in KHTMLPartBrowserExtension::restoreState (this=0xbb796d8,
    stream=@0xbf8c050c)
    at /build/buildd/kde4libs-4.1.3/khtml/khtml_ext.cpp:104
#9  0xb7feb156 in ?? () from /usr/lib/libkdeinit4_konqueror.so
#10 0xb8041ce0 in ?? () from /usr/lib/libkdeinit4_konqueror.so
#11 0xb804b1c7 in ?? () from /usr/lib/libkdeinit4_konqueror.so
#12 0xb74f7a60 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#13 0xb74f87e2 in QMetaObject::activate () from /usr/lib/libQtCore.so.4
#14 0xb74fddb7 in ?? () from /usr/lib/libQtCore.so.4
#15 0xb74fdedc in ?? () from /usr/lib/libQtCore.so.4
#16 0xb74f253f in QObject::event () from /usr/lib/libQtCore.so.4
#17 0xb69e68ec in QApplicationPrivate::notify_helper ()
   from /usr/lib/libQtGui.so.4
#18 0xb69ee72e in QApplication::notify () from /usr/lib/libQtGui.so.4
#19 0xb79b2b2d in KApplication::notify (this=0xbf8c0f94, receiver=0xc6f5c88,
    event=0xbf8c0b4c)
    at /build/buildd/kde4libs-4.1.3/kdeui/kernel/kapplication.cpp:311
#20 0xb74e2e61 in QCoreApplication::notifyInternal ()
   from /usr/lib/libQtCore.so.4
#21 0xb7510d81 in ?? () from /usr/lib/libQtCore.so.4
#22 0xb750d520 in ?? () from /usr/lib/libQtCore.so.4
#23 0xb64596f8 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#24 0xb645cda3 in ?? () from /usr/lib/libglib-2.0.so.0
#25 0xb645cf61 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#26 0xb750d478 in QEventDispatcherGlib::processEvents ()
   from /usr/lib/libQtCore.so.4
#27 0xb6a80ea5 in ?? () from /usr/lib/libQtGui.so.4
#28 0xb74e152a in QEventLoop::processEvents () from /usr/lib/libQtCore.so.4
#29 0xb74e16ea in QEventLoop::exec () from /usr/lib/libQtCore.so.4
#30 0xb74e3da5 in QCoreApplication::exec () from /usr/lib/libQtCore.so.4
#31 0xb69e6767 in QApplication::exec () from /usr/lib/libQtGui.so.4
#32 0xb80782ed in kdemain () from /usr/lib/libkdeinit4_konqueror.so
#33 0x080485b2 in _start ()
#0  0xb80c1430 in __kernel_vsyscall ()

Pourriez-vous m'indiquer quels paquets de debug installer pour pouvoir reporter à l'avenir. Une autre question au passage, en regardant le log ci-dessus, je vois que pour une même librairie, des fois il la connait et des fois pas, par exemple :

#9  0xb7feb156 in ?? () from /usr/lib/libkdeinit4_konqueror.so
[...]
#32 0xb80782ed in kdemain () from /usr/lib/libkdeinit4_konqueror.so

Savez-vous à quoi c'est dû ?

Merci d'avance.

Hors ligne

#2 Le 19/01/2009, à 11:33

jde3

Re : Paquets de debug

Désolé d'insister, mais personne ne sait quels packages installer pour ne plus avoir les "??" ?

Hors ligne

#3 Le 19/01/2009, à 14:25

jajaX

Re : Paquets de debug

salut

regarde du coté des paquets dont l'extension est "dbg" wink


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#4 Le 19/01/2009, à 15:50

moi1392

Re : Paquets de debug

fais une recherche de kdelibs et kdebase avec des -dbg à la fin du nom du paquets.
libqtcore et libqtgui (avec les extensions -dbg) peuvent aussi être utiles.

konqueror est dans kdebase, donc ça suffira, mais si tu as des plantages avec d'autres programmes, il te faudra le -dbg associé (par exemple, kdegraphics pour kolourpaint, pour kmail et la suite kontact, il en faut 2, kdepimlibs et kdepim)

si tu as un doute pour un logiciel en particulier, demande.

Hors ligne

#5 Le 19/01/2009, à 15:56

jde3

Re : Paquets de debug

@jajaX : je savais qu'il fallait des paquets "dbg", mais mon souci était de cibler lesquels, sachant que :

$ sudo apt-cache search dbg | wc -l
764

hmm

Merci moi1392, j'ai installé ces deux-là. Pour kmail j'avais réussi à trouver l'info, mais c'est pour les librairies KDE que je ne trouvais pas (tu me diras, le nom était pourtant explicite...)

Maintenant y'a plus qu'à attendre le prochain bug pour voir si ca suffit... tongue

Dernière modification par jde3 (Le 19/01/2009, à 15:56)

Hors ligne

#6 Le 19/01/2009, à 16:04

moi1392

Re : Paquets de debug

ouvres ksysguard (atl+f2 -> tapes "ksysguard") trouve konqueror dans la liste des processus ->click droit -> envoyer un signal -> le signal SIGSEGV (signal numéro 11 sous linux) est celui envoyé par le noyeau en cas d'accès illégal à la mémoire (= 99,9 % des plantages)

attention, ton konqueror ne sera plus récupérable ! comme s'il avait planté.

edit : ou en plus rapide, utilises la commande "killall -SEGV konqueror" qui simulera un crash sur tous tes konqueror lancés wink

Dernière modification par moi1392 (Le 19/01/2009, à 16:05)

Hors ligne

#7 Le 19/01/2009, à 18:59

Link31

Re : Paquets de debug

moi1392 a écrit :

ouvres ksysguard (atl+f2 -> tapes "ksysguard") trouve konqueror dans la liste des processus ->click droit -> envoyer un signal -> le signal SIGSEGV (signal numéro 11 sous linux) est celui envoyé par le noyeau en cas d'accès illégal à la mémoire (= 99,9 % des plantages)

attention, ton konqueror ne sera plus récupérable ! comme s'il avait planté.

edit : ou en plus rapide, utilises la commande "killall -SEGV konqueror" qui simulera un crash sur tous tes konqueror lancés wink

... roll


lol

Hors ligne

#8 Le 19/01/2009, à 19:08

moi1392

Re : Paquets de debug

j'ai fait une blague malgré moi ?

raconte, j'ai envie de rire aussi tongue

Dernière modification par moi1392 (Le 19/01/2009, à 19:09)

Hors ligne

#9 Le 19/01/2009, à 19:48

Link31

Re : Paquets de debug

moi1392 a écrit :

j'ai fait une blague malgré moi ?

raconte, j'ai envie de rire aussi tongue

J'imagine la tête du développeur :
le dev : est-ce que le bug est reproductible ?
l'utilisateur : oui, avec killall -SEGV konqueror, il se passe exactement la même chose
le dev : roll sad

Encore pire si tu lui envoies la stacktrace résultant du killall -SEGV. Il va passer 6 mois à s'arracher les cheveux pour trouver le "bug", avant de se décider à venir chez toi en personne pour commettre un meurtre tongue

jde3 : ta stacktrace est plutôt bonne, bien qu'elle soit évidemment incomplète. Ça suffit pour qu'à première vue on sache que le bug se produit dans la fonction KHTMLPartBrowserExtension::restoreState(), qui appelle la méthode restoreState() du KPart avec, manifestement, un QDataStream invalide ou incomplet. Ou peut-être que le KPart lui-même (m_part dans le code) n'est plus valide, même si ça semble moins probable.

Je pense qu'avec les informations permettant de reproduire relativement souvent ce bug, les développeurs devraient pouvoir en tirer quelque chose.

Hors ligne

#10 Le 20/01/2009, à 00:11

moi1392

Re : Paquets de debug

bah en même temps je propose des solutions quoi wink

et puis comme ça les gens intéressés peuvent apprendre des trucs smile

au boulot je me suis servi plusieurs fois du coup d'envoyer un SIGSEGV à l'application qu'on développe, ça ma servi dans des cas très particuliers.
Du coup si je le fait découvrir à une seule autre personne, ça aura servi à quelque chose que j'en parle wink

Dernière modification par moi1392 (Le 20/01/2009, à 00:12)

Hors ligne

#11 Le 20/01/2009, à 00:42

jajaX

Re : Paquets de debug

salut

regarde mes dégats...


@+
jajaX
Asus X93SM-YZ157V / Asus X93SM-YZ065V sous KDE Neon
ASUS K95VB sous Kubuntu 22.04 Jammy Jellyfish (64 bits) / ACER Aspire 5612 WLMI sous Kubuntu 18.04 Bionic Beaver (32 bits)

Hors ligne

#12 Le 20/01/2009, à 11:43

moi1392

Re : Paquets de debug

ton crash à lieu lors d'une libération de mémoire, je pencherai pour un tas corrompu.
Dans ce cas précis, cette pile n'aide pas, car c'est à un autre moment que le programme à merdé et à fait nimporte quoi dans sa mémoire, au moment du free (libération de mémoire allouée par le programme), il y a un problème et l'algo de "free" se rends compte que ses données sont corrompues, il déclanche donc une exception qui arrete l'exécution.

si tu veux m'aider à la résoudre, et que tu peux le reproduire à coup sûr, essais de lancer un logiciel qui merde avec valgrind.
n'oublies pas les symboles de débogage du logiciel qui plante jusqu'à kdelibs.

si t'es motivé pour l'essais, fais moi signe je t'expliquerai comment faire.

Hors ligne

#13 Le 26/01/2009, à 14:18

jde3

Re : Paquets de debug

Je reviens un peu tard sur cette page... C'est de mieux en mieux, il me reste plus que ca comme points d'interrogation :

#8  0xb62dbc32 in ?? () from /usr/lib/libglib-2.0.so.0
[...]
#11 0xb68ffea5 in ?? () from /usr/lib/libQtGui.so.4

Et le premier des deux est parti en installant libglib2.0-0-dbg (pas trop dur à trouver celui-là). N'en reste plus qu'un et je serai le serial bug reporter que j'ai toujours rêvé d'être tongue

Dernière modification par jde3 (Le 26/01/2009, à 14:18)

Hors ligne

#14 Le 26/01/2009, à 14:38

moi1392

Re : Paquets de debug

je pense que tu peux y aller wink

tu as déjà les symboles de debug de Qt, si cet appel en particulier n'est pas trouvé, je pense juste que c'est à cause de problèmes liés à la compilation.
Quand tu compiles un programe en mode optimisé (à partir de -02 avec gcc) beaucoup d'informations ne sont plus disponible pour déboguer ce programme et le compilo "vire" des trucs et en fusionne d'autres.
Donc s'il y a un ou deux points d'intérrogation dans ta pile, c'est pas très grave wink

Dernière modification par moi1392 (Le 26/01/2009, à 14:45)

Hors ligne

#15 Le 26/01/2009, à 14:43

jde3

Re : Paquets de debug

Oki, super. Merci de ton aide en tout cas, et c'est toujours intéressant d'avoir les explications en plus de la conclusion...

Hors ligne