"불법 명령(코어 덤프)"이란 정확히 무엇을 의미합니까? [복사]

"불법 명령(코어 덤프)"이란 정확히 무엇을 의미합니까? [복사]

나는 다음과 같은 문제에 대한 많은 해결책을 봅니다.

잘못된 명령(코어 덤프)

그런데 이것이 정확히 무엇을 의미하는지 궁금합니다. 이 오류는 무엇이 발생하며 근본 원인은 무엇입니까? CPU가 명령이라고 생각한 것을 받았지만 이를 디코딩할 수 없었습니까? 이 오류를 생성하기 위해 뒤에서 무슨 일이 일어나고 있습니까?

에서 dmesg나는 본다

[429572.598803] traps: test[4054] trap invalid opcode ip:400066 sp:ffac8cc0 error:0 in test[400000+1000]
[429758.598292] traps: test[4401] trap invalid opcode ip:400066 sp:ffa3f990 error:0 in test[400000+1000]
[430066.170626] traps: test[4854] trap invalid opcode ip:400066 sp:ff8ab000 error:0 in test[400000+1000]
[430439.855002] traps: test[5212] trap invalid opcode ip:8048071 sp:ffce2fa0 error:0 in test[8048000+1000]

답변1

x86용.이 화면의 오류는 catch 에 정의된 "CPU 트랩" SIGILL인 커널에 의해 전송된 결과 인 것으로 보입니다 . A급 중 하나입니다kernel/traps.cX86_TRAP_UD다른 여러 사람다음을 포함하여 CPU에서 직접 발생합니다.

X86_TRAP_DE,        divide_error
X86_TRAP_NMI,       nmi
X86_TRAP_BR,        bounds
X86_TRAP_UD,        invalid_op
X86_TRAP_NM,        device_not_available
X86_TRAP_OLD_MF,    coprocessor_segment_overrun
X86_TRAP_TS,        invalid_TSS
X86_TRAP_NP,        segment_not_present
X86_TRAP_SS,        stack_segment
X86_TRAP_GP,        general_protection
X86_TRAP_SPURIOUS,  spurious_interrupt_bug
X86_TRAP_MF,        coprocessor_error
X86_TRAP_AC,        alignment_check
X86_TRAP_XF,        simd_coprocessor_error

엔터테인먼트를 위해 볼 수 있습니다.골프와 함께 이를 보여주는 프로그램 목록은 다음과 같습니다.

관련 정보