제가 이번에 programming project 하면서 segmentation fault
(이하 sf)하고 bus error(이하 be) 때문에 고생 좀 하면서
알게 된 주먹 구구식 접근 방식을 하나 소개할께요.
먼저 sf는 대부분의 사람들이 잘 알고 있읍니다. sf를 유발하는
대부분의 bug는 NULL pointer가 가리키는 영역을 access하려 할
때 입니다. 정작 어려운 것은 be인데, be 자체가 cover하는
error의 종류가 매우 광범위합니다만 실제 C나 C++로 작성한
프로그램에서 be가 발생했다면, 일단 array boundary를 넘어서
뭔가를 write하지 않는지 의심해보아야 합니다. 제 생각으로는
이것만으로도 통상적으로 발생하는 sf나 be의 80~90%를 cover할
수 있을 것 같습니다.
소위 Computer Science하는 사람으로서 요런 치밀하지 못한
이야기를 하게 되어서 매우 부끄럽게 생각합니다...
kee@cs.umd.edu
kee@pandora.snu.ac.kr
tarkus@kids