Condizioni di overflow dello stack su Linux

Un overflow dello stack su Linux® può essere identificato da un errore SIGSEGV, anche se la VM (Virtual Machine) Java™ potrebbe arrestarsi in modo imprevisto senza visualizzare alcuna informazione sulla console.

Se si riceve un errore SIGSEGV quando non è presente un overflow dello stack, le informazioni diagnostiche vengono scritte nella console come nell'esempio riportato in: Scenari in cui i file di dump potrebbero non essere prodotti

Quando si è verificato un overflow dello stack, questi sono i due risultati più probabili:
  • È stato prodotto un file principale (core.pid) nella directory di lavoro del processo Java.
  • Non è stato prodotto alcun file core oppure il file core è stato troncato.
Nel primo scenario, il file core deve contenere la serie completa di thread per la VM e può essere utilizzato con il programma di visualizzazione dump per richiamare le informazioni diagnostiche mancanti. Per ulteriori informazioni sul visualizzatore dump, consultare Visualizzatore dump nella documentazione utente OpenJ9 . I file principali verranno prodotti nella directory di lavoro del processo al momento dell'arresto anomalo, a meno che non sia configurato diversamente a livello di sistema.

Se non è stato prodotto alcun file core, è necessario controllare le impostazioni di sistema per assicurarsi che la creazione del file core sia abilitata ed eseguire nuovamente l'applicazione. Per ulteriori informazioni, consultare Configurazione del sistema nella documentazione utente OpenJ9 .

Se per le impostazioni di sistema è già abilitata la generazione del file core, ma non è stato prodotto alcun file core, il problema non è un overflow dello stack. La produzione dei file principali in un caso di overflow dello stack deve essere identica a un errore SIGSEGV durante l'esecuzione con -Xrs o con l'opzione -Xrs:sync . Per ulteriori informazioni, consultare -Xrs nella documentazione per l'utente di OpenJ9 .