델파이나 C++빌더의 IDE 안에서 프로젝트를 Run으로 실행시킨 경우인지 여부를 코드에서 확인해야 할 경우가 있습니다. 물론, 컴파일된 모드가 디버그 모드인지 릴리즈 모드인지를 확인하기 위해서는 컴파일러 디렉티브 _DEBUG를 쓰면 되는데요.
디버그 모드로 컴파일되어있는지가 아니라 IDE 안에서 Run으로 실행된 경우, 즉 현재 디버깅 진행중인지를 알아내려면 전역변수 DebugHook의 값을 검사하면 됩니다. 이 DebugHook의 값이 0보다 크면 디버깅 중인 것입니다.
델파이라면…
1 2 3 4 5 |
procedure TForm1.Button1Click(Sender: TObject); begin if DebugHook>0 then ShowMessage('디버깅 중입니다.'); end; |
C++빌더라면…
1 2 3 4 5 |
void __fastcall TForm1::Button1Click(TObject *Sender) { if(DebugHook>0) ShowMessage("디버깅 중입니다."); } |
참고로 이 DebugHook 전역변수는 System.pas에 정의되어 있습니다. 델파이3와 C++빌더3 이상의 모든 버전에서 사용하실 수 있습니다.
항상 잘 보고 있습니다. 매번 좋은 정보들을 알려주시니 감사합니다~ ^^