✺
BUG 매크로는 보통 소프트웨어적으로 심각한 오류 상태라 더는 실행할 수 없다고 판단할 때 호출 합니다. 혹시 소프트웨어 공학에서 ASSERT란 단어 들어 보신 적 있나요? 보통 포인터가 NULL일 때 ASSERT를 호출하죠. 예제 코드는 다음과 같습니다.void trace_kernel_process_name(void *param){ if( !param ) ASSERT(1); printk(“ process name: %s pid: %d \n”, current->comm, current->pid)} 리눅스 커널에서는 ASSERT 대신 BUG()를 씁니다. 그리고 panic이란 함수도 비슷한 역할을 수행합니다.BUG나 panic이란 함수를 호출하면 커널 크래시가 발생하는 것이지요.