// definition of guard and unguard

2006. 12. 26. 11:55·Game Programming
728x90
반응형
// definition of guard and unguard
//
// guard/unguardf/unguard macros.
// For showing calling stack when errors occur in major functions.
// Meant to be enabled in release builds.
//
#if defined(_DEBUG) || !DO_GUARD
#define guard(func){static const TCHAR __FUNC_NAME__[]=TEXT(#func);
#define unguard}
#define unguardf(msg)}
#else
#if _MSC_VER
#define guard(func){static const TCHAR __FUNC_NAME__[]=TEXT(#func); try{
#define unguard}catch(TCHAR*Err){throw Err;}catch(...){appUnwindf(TEXT("%s"),__FUNC_NAME__); throw;}}
#define unguardf(msg)}catch(TCHAR*Err){throw Err;}catch(...){appUnwindf(TEXT("%s"),__FUNC_NAME__); appUnwindf msg; throw;}}
#else
#define guard(func){static const TCHAR __FUNC_NAME__[]=TEXT(#func); __Context __LOCAL_CONTEXT__; try{ if(setjmp(__Context::Env)) { throw 1; } else {
#define unguard}}catch(char*Err){throw Err;}catch(...) {appUnwindf(TEXT("%s"),__FUNC_NAME__); throw;}}
#define unguardf(msg)}}catch(char*Err){throw Err;}catch(...) {appUnwindf(TEXT("%s"),__FUNC_NAME__); appUnwindf msg; throw;}}
#endif
#endif
728x90
반응형
'Game Programming' 카테고리의 다른 글
  • 아... C라.. 파일 입출력이라..
  • 다익스트라(Dijkstra) 알고리즘
  • 이제부터 맵툴 개발일지를 쓰다!!
  • Mersenne-Twister 난수 발생기
이민웅
이민웅
그저 그렇게 다시 시작해볼까?
  • 이민웅
    그저 그런 개발자
    이민웅
  • 전체
    오늘
    어제
    • 분류 전체보기 (108)
      • AI (0)
      • Game Programming (34)
      • ShaderStudy발표자료 (43)
      • Engine Development (28)
      • 언리얼 공부 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    mobile
    길찾기 알고리즘
    루리웹
    사랑
    한국어문신
    블로그이사
    Apple
    게임개발자
    CEDEC2021
    스티브잡스
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.6
이민웅
// definition of guard and unguard
상단으로

티스토리툴바