OVH Cloud OVH Cloud

qui m'à tuer

4 réponses
Avatar
cedric
Bonjour.

J'ai fait un programme. Vers la fin du programme, celui-ci se fait tuer
par un coup de SIGKILL. Mais je ne sais pas par qui ni surtout pourquoi.
J'ai essayé strace qui se termine plus ou moins comme ceci (en virant
mon propre output) :

mprotect(0x40000000, 4096, PROT_READ|PROT_WRITE) = 0
mprotect(0x401dd000, 143360, PROT_NONE) = 0
mprotect(0x40000000, 4096, PROT_NONE) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [RTMIN], 8) = 0
rt_sigsuspend([] <unfinished ...>
+++ killed by SIGKILL +++


Normalement à ce moment là j'ai un thread qui se termine.

Cela dit quelquechose à quelqu'un ?

Et à part ca, quelle est la facon la plus élégante de débugger un
programme qui comporte plusieurs threads ? A part la méthode gdb dont on
parle ici ou là ?

Merci de votre aide.

4 réponses

Avatar
Jean-Marc Bourguet
cedric writes:

Cela dit quelquechose à quelqu'un ?


Rien.

Et à part ca, quelle est la facon la plus élégante de débugger un
programme qui comporte plusieurs threads ? A part la méthode gdb
dont on parle ici ou là ?


La methode classique: reduire le probleme, le comprendre, en trouver
la cause, en trouver une solution. Le debuggeur n'aide qu'a trouver
la cause. On peut s'en sortir avec des printf a des endroits bien
choisis ou en supprimant du code jusqu'a avoir un programme tellement
simple que le probleme est evident. Ca peut meme aller plus vite
qu'avec un debuggeur parce qu'on reflechit a ce qu'on fait.

A+

--
Jean-Marc
Site de usenet-fr: http://www.usenet-fr.news.eu.org

Avatar
manu
cedric wrote:

J'ai fait un programme. Vers la fin du programme, celui-ci se fait tuer
par un coup de SIGKILL. Mais je ne sais pas par qui ni surtout pourquoi.


Appelle Derick ou Columbo, ils resolvent ce genre de problèmes tous les
jours :)

Plus serieusement, il arrive que le noyau tue un processus. Pas de
message sur la console?

--
Emmanuel Dreyfus
Publicité subliminale: achetez ce livre!
http://www.eyrolles.com/Informatique/Livre/9782212114638/livre-bsd.php


Avatar
cedric
Jean-Marc Bourguet wrote:
La methode classique: reduire le probleme, le comprendre, en trouver
la cause, en trouver une solution. Le debuggeur n'aide qu'a trouver
la cause. On peut s'en sortir avec des printf a des endroits bien
choisis ou en supprimant du code jusqu'a avoir un programme tellement
simple que le probleme est evident. Ca peut meme aller plus vite
qu'avec un debuggeur parce qu'on reflechit a ce qu'on fait.


Moui... C'est ce que je fait, mais si on compte que le programme fait
communiquer 3 threads par une lib UDP custom, ca s'avère un peut
énervant pour suivre le fil...

Avatar
cedric
Emmanuel Dreyfus wrote:
Plus serieusement, il arrive que le noyau tue un processus. Pas de
message sur la console?


Sur mon terminal j'ai :

zsh: killed frpc_check

Et c'est tout.