Conditions de dépassement de pile sous Linux

Un dépassement de pile sur Linux® peut être identifié par une erreur SIGSEGV, bien que la machine virtuelle Java™ puisse s'arrêter de manière inattendue sans afficher d'informations sur la console.

Si vous obtenez une erreur SIGSEGV alors qu'il n'y a pas de dépassement de pile, les informations de diagnostic sont écrites sur la console comme dans l'exemple suivant: Scénarios dans lesquels des fichiers de vidage peuvent ne pas être générés

Lorsqu'un débordement de pile se produit, il existe deux causes possibles :
  • Un fichier core (core.pid) a été généré dans le répertoire de travail du processus Java.
  • Aucun fichier core n'a été produit ou le fichier produit est tronqué.
Dans le premier cas, le fichier doit contenir l'ensemble complet des unités d'exécution de la machine virtuelle et il peut être utilisé avec un afficheur de vidage pour extraire les informations de diagnostic manquantes. Pour plus d'informations sur l'afficheur des vidages, voir Dump viewer (Dump viewer) dans la documentation utilisateur OpenJ9 . Les fichiers core auront été produits dans le répertoire de travail du processus au moment du plantage, sauf configuration contraire au niveau du système.

Si aucun fichier core n'a été produit, vérifiez les paramètres système pour vous assurer que la génération de fichier core est activée et réexécutez l'application. Pour plus d'informations, voir Configuration de votre système dans la documentation utilisateur OpenJ9 .

Si la génération de fichier core est activée dans les paramètres système et qu'aucun fichier core n'a été produit, le problème n'est pas un débordement de pile. La production de fichiers core en cas de dépassement de pile doit être identique à une erreur SIGSEGV lors de l'exécution avec l'option -Xrs ou -Xrs:sync. Pour plus d'informations, voir -Xrs dans la documentation utilisateur OpenJ9 .