안녕하세요.
Form위에 버튼을 하나 두고 버튼을 클릭시 NULL Pointer에다가 값을 쓰도록하여
강제적으로 access violation error를 발생해 보았습니다.
이 경우에는 실행파일을 직접 실행할 경우 버튼을 누르면
Access violation at address 004...... 어쩌고 하고 윈도우 에러 창이 실행되는데요
Thread 의 Execute() 에서 버튼에서와 동일하게 강제로 access violation error를
발생 시키면 Access violation at address .... 하고 뜨는 윈도우 에러 창이
뜨지않고 Thread 가 그냥 소리 없이 죽습니다.
어찌하여 Thread에서는 Access violation 에러를 발생 시켜도 에러 윈도우가
안뜨는 것인지 궁금합니다.
테스트 소스도 압축하여 첨부합니다.
void __fastcall MyThread::Execute()
{
//---- Place thread code here ----
int nNumber = 0;
int *pPointer = NULL;
while(!Terminated){
::Sleep(10);
if(nNumber > 10){
pPointer = 1000; // 강제로 NULL Pointer에 값을 쓰도록하여 error 발생.
}
nNumber++;
}
}
|