C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[48732] [만해] 예외 발생시 스택 트레이스 가능 한가요?
강재호.만해 [greenuri] 1217 읽음    2007-04-03 17:42
예외가 발생시 처리 하는 부분인데요

다음과 같습니다.

Application->OnException = ExceptionFilter;

void __fastcall Tfrm_Main::ExceptionFilter(TObject *Sender, Exception *ExceptionCode)
{
                AnsiString a_Msg;
    TStringList* ErrMsg = new TStringList;
    ErrMsg->Text =  ExceptionCode->Message;
    a_Msg  = "Exception Class = " + Sender->ClassName();
    a_Msg += ENTER;
    a_Msg += AnsiReplaceStr(ExceptionCode->Message, ::CR, ENTER);

    ExceptionLogs(Sender->ClassName(), a_Msg);
    delete ErrMsg;
    return;
}

이런식으로 되어 있는데요

가끔씩 보면

TcxCustomInnerTextEdit
Exception Class = TcxCustomInnerTextEdit
'U0088' is not a valid integer value

TArtPanel
Exception Class = TArtPanel
'' is not a valid integer value

TServerClientWinSocket
Exception Class = TServerClientWinSocket
Access violation at address 008EA4BD in module 'ezClick.exe'. Read of address 00000018

TServerClientWinSocket
Exception Class = TServerClientWinSocket
List index out of bounds (3)

이런식으로 예외가 발생하는 부분에 대한 정보가 나오는데요

TServerClientWinSocket
Exception Class = TServerClientWinSocket
Exception Method=DataOnlyOneCheck
Exception Context=Query:Select *** From table Execute
Exception Message=EAccessViolation

DB쪽의 에러는 제가 거의 대부분 전처리를 하기 때문에 이렇게 구분을 시켜서 메타 데이타를 추가 시켜서

보기 쉽게 되어 있지만,

그외의 예외들 그러니깐 UnHandled Exception은 저위와 같이 메모리 주소랑 에러 경우만 나오기 때문에

참 파악 하기가 힘듭니다.

그리고 프로그램 특성상 필드 테스트는 거의 어렵고요,

결국은 릴리즈 나간데서 정보를 얻어야 한다는 얘기인데

UnHandled Exception에서 발생하는 정보가 작다 보니 좀 어렵습니다.

그래서 Unhandled Exception 발생시 다른건 몰라도 이 예외를 발생 시킨 함수를 좀 알수 없을까요?

a -> b -> c -> d -> Exception 발생.

이렇게 되었을때 제 로그 상으로는 d는 알수 있는데 a,b,c 까지는 알수 없습니다.

a,b,c,d 까지 알수 있는 방법이 없을까요?

최대 7에서 작게 3개 정도 가지 콜 트레이스를 할수 있으면 좋겠는데

누가 방법을 아시면 좀 가르켜 주세요~

+ -

관련 글 리스트
48732 [만해] 예외 발생시 스택 트레이스 가능 한가요? 강재호.만해 1217 2007/04/03
48806     Re:[만해] 예외 발생시 스택 트레이스 가능 한가요? dd 1279 2007/04/09
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.