2008-10-09 11 views
4

Est-ce que quelqu'un ici a réussi à exécuter Eclipse sous Valgrind? Je suis en train de lutter contre un crash de code JNI et j'espérais que Valgrind pourrait (encore) prouver son excellence, mais quand j'exécute Eclipse sous Valgrind, la JVM se termine avec un message d'erreur sur le fait de ne pas pouvoir créer l'objet initial tas (je n'ai actuellement pas accès au message d'erreur exact, je vais éditer ce post dès que je le fais.)Exécution d'Eclipse sous Valgrind

Répondre

1

S'il y a un plantage dans le code natif, alors gdb pourrait être un meilleur choix. Il devrait même arrêter l'exécution automatiquement lors d'une panne et vous montrer la trace de la pile (commande bt).

+0

J'ai déjà essayé. J'ai découvert que l'incident se produit lorsqu'un nouveau thread est créé, mais avant que le contrôle ait été transmis à la JVM, c'est-à-dire que l'incident se produit quelque part dans la glibc ou les pthreads. – JesperE

2

Cela fonctionne-t-il si vous run valgrind with --smc-check=all?

Aussi - valgrind augmente considérablement les besoins en mémoire d'un programme. Avec quelque chose d'aussi grand que Eclipse, il y a beaucoup de place pour les ennuis; j'espère que vous êtes natif 64 bits (et avez donc beaucoup d'espace d'adressage) et avez beaucoup de RAM et/ou d'échange.

0

Qu'en est-il de l'utilisation de deux débogueur? J'ai trouvé this rather old article qui exposent cette technique.

+0

Eh bien, j'ai essayé cela (http://thisisnotaprogrammersblog.blogspot.com/2008/04/debugging-jni-code-using-eclipse-and.html), mais cela ne fonctionne pas dans ce cas. Le crash apparaît lorsque la JVM est sur le point de générer un nouveau thread (à l'intérieur de pthreads), et je ne sais pas comment faire le suivi de ce qui ne va pas. – JesperE

+0

Ils disent que visualvm peut faire une analyse post-mortem. Je ne l'ai pas essayé, mais peut-être une chose à essayer (jdk6_7) https://visualvm.dev.java.net/features.html, des vidages de thread serach et des décharges de base –

Questions connexes