1 votes

Eclipse est-il censé provoquer des erreurs de segmentation en permanence ?

Résumé : La VM Java qui fait tourner Eclipse sur mon système semble fonctionner, mais en interne, elle obtient constamment des erreurs de segmentation.

Marche à suivre pour reproduire :

  1. Télécharger eclipse-cpp-kepler-SR2-linux-gtk-x86_64.tar.gz de http://www.eclipse.org/cdt/downloads.php .
  2. L'extraire en tant que /path/to/eclipse .
  3. Ejecutar gdb /path/to/eclipse/eclipse .
  4. Faire set follow-fork child afin que GDB trace le processus Java réel et pas seulement le lanceur Eclipse.
  5. Type run pour démarrer Eclipse. Il se peut que vous deviez sélectionner un répertoire d'espace de travail.
  6. Vous devriez bientôt obtenir une erreur de segmentation (SIGSEGV). Type de fichier cont dans GDB et vous en obtiendrez une autre. Type de fichier cont et vous en obtiendrez un autre. Et ainsi de suite ad nauseam.

Là encore, Eclipse semble fonctionner, probablement parce qu'il capte le signal et le récupère d'une manière ou d'une autre.

Mon système d'exploitation est Red Hat Enterprise Linux 6.5 64 bits avec toutes les mises à jour d'hier (2014-May-22). Le RPM Java est java-1.7.0-openjdk-1.7.0.55-2.4.7.1.el6_5.x86_64 la version actuelle (version 7 Update 55) de http://java.com/ produit les mêmes résultats.

Je suis curieux de savoir si ce comportement se produit pour d'autres personnes et sur d'autres versions de Linux. Plus important encore, je suis curieux de savoir si quelqu'un sait si c'est "normal".

(Au cas où vous vous poseriez la question...) Bien qu'Eclipse semble fonctionner, je crains qu'un problème réel ne soit caché. J'ai remarqué cela parce que j'obtiens des erreurs de segmentation occasionnelles, pas entièrement reproductibles, dans un plug-in qui utilise WebKit. J'ai pensé essayer d'observer le segfault sous GDB, mais cela s'est avéré délicat parce que la JVM fait des segfaults à répétition dès le début, même sur une nouvelle installation sans le plug-in incriminé).

4voto

Kottan Points 1662

La JVM utilise un certain nombre de signaux au cours de son fonctionnement normal, de sorte que les SIGSEGV sont attendus. SIGSEGV est utilisé dans le cas d'une exception NullPointerException.

Voir cet article pour plus de détails.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X