First-chance Exception / Second(last)-chance Exception



 프로그램에서 예외가 발생했을 때 디버거에 붙인 상태에서 보면 First chance Exception 이 발생하고, 

그 상태에서 한번 더 진행을 하면 Second chance Exception 이 발생한다. 디버깅 중인 상태에서는 

디버거가 예외에 대한 감지를 먼저 하게 되는데, 이로 인해 프로그램이 아닌 디버거가 발견한 예외 상태를 

First chance Exception 이라 한다. 

 간혹 퍼징을 하다 First chance Exception 이 발생한 것을 보고 디버거 없이 해당 파일을 실행해보면 

실제로는 예외가 발생하지 않는  경우가 있는데, 이러한 경우는 Second chance Exception 이 발생했을 때 

프로그램이 예외 처리(SEH)를 수행하고 있다는 뜻이다. 


 즉 퍼징을 할 때에도 디버깅 상태이므로 First chance Exception 은 넘어가는 것이 좋다는 것. 

조금 더 자세한 사례를 알아볼 필요가 있을 듯 하다.




+ Recent posts