Illegal instruction (core dumped) / SIGILL signal 4 – C SIGILL_ILLEGAL_INSTRUCTION

SIGILL_ILLEGAL_INSTRUCTION

Il processore tenta di eseguire un'istruzione assembly non supportata dal silicio (es. istruzioni AVX-512 su CPU legacy) o causata dalla corruzione dello stack che fa saltare l'instruction pointer su dati non eseguibili.

Cosa significa questo errore?

Il processore tenta di eseguire un'istruzione assembly non supportata dal silicio (es. istruzioni AVX-512 su CPU legacy) o causata dalla corruzione dello stack che fa saltare l'instruction pointer su dati non eseguibili.

Messaggio originale

Illegal instruction (core dumped) / SIGILL signal 4

Contesto e parole chiave

Alias

  • Illegal instruction core dumped C
  • SIGILL

Messaggi alternativi

  • istruzione macchina illegale non supportata

Prodotti

  • GCC / Clang / MSVC / GDB

Piattaforme

  • Linux
  • macOS
  • Windows

Parole chiave

  • c.runtime.sigill-illegal-instruction
  • errore-c-sigill-illegal-instruction
  • linguaggio-c
  • Segnali e Crash a Runtime

Cause possibili

Causa tecnica per Errore C: Illegal instruction (SIGILL / Istruzione Macchina Non Supportata)

Il processore tenta di eseguire un'istruzione assembly non supportata dal silicio (es. istruzioni AVX-512 su CPU legacy) o causata dalla corruzione dello stack che fa saltare l'instruction pointer su dati non eseguibili.

molto comune

Diagnosi

Diagnostica di compilazione o memoria per Errore C: Illegal instruction (SIGILL / Istruzione Macchina Non Supportata)

Compilare con flag di warning rigorosi (-Wall -Wextra -pedantic) e analizzare eventuali crash con AddressSanitizer o GDB.

Come leggere il risultato. Evidenzia warning precisi a tempo di compilazione ed esegue l'intercettazione dei memory error a runtime.

terminal
gcc -Wall -Wextra -pedantic -fsanitize=address -g main.c -o app

Risoluzione

Risoluzione standard per Errore C: Illegal instruction (SIGILL / Istruzione Macchina Non Supportata)

Difficoltà: mediaRischio: basso

Applicare la correzione al codice sorgente C secondo le buone pratiche di gestione memoria e prototipi.

  1. Ispezionare la riga segnalata dal compilatore o l'indirizzo del crash
  2. Correggere la gestione dei puntatori, firme delle funzioni o flag del linker
  3. Ricompilare e verificare l'assenza di memory leak con Valgrind o ASan
terminal
gcc -Wall -Wextra main.c -o app

Domande frequenti

Come risolvere l'errore Errore C: Illegal instruction (SIGILL / Istruzione Macchina Non Supportata) in C?

Il processore tenta di eseguire un'istruzione assembly non supportata dal silicio (es. istruzioni AVX-512 su CPU legacy) o causata dalla corruzione dello stack che fa saltare l'instruction pointer su dati non eseguibili.

Approfondimenti

Schede correlate