2010-05-01 6 views
1

내 Visual C++ 응용 프로그램은/EHA 옵션으로 컴파일되어 구조화 된 예외 (0으로 나누기, 액세스 위반 등)를 잡을 수 있습니다. 그런 다음 _set_se_translator()를 사용하여 해당 예외를 자신의 예외 클래스로 변환합니다. 내 목표는 이러한 유형의 예외 로깅을 향상시키는 것입니다.구조화 된 예외에 대한 자세한 정보 얻기

EXCEPTION_RECORD 구조와 예외 주소에서 예외 유형을 얻을 수 있습니다. 예외가 발생하는 소스 파일/위치, 호출 스택 등과 같은 정보를 더 수집 할 수 있기를 원합니다. 가능합니까?

구조화 된 예외에 예외 미니 덤프를 만듭니다. 자동으로 호출 스택을 가져올 도구가 있습니까?

답변

1

콜 스택과 다른 모든 예외 정보는 미니 덤프 사후 디버깅을 사용하여 볼 수 있습니다 :

http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

AFAIK는 로깅을위한 장소에 스택 정보를 생성하는 .PDB 파일없이 불가능하다. 일반적으로 .pdb 파일은 클라이언트 컴퓨터에 설치되지 않습니다.

0

내가 가진 한 가지 아이디어는 구조화 된 예외가 던져진 스레드에서 알 수 있도록 다른 스레드 (여러 스레드마다 하나의 변환기 함수가 있음)에서 다른 변환기 함수를 사용하는 것입니다.

번역기 기능에 인수를 전달할 수 없으므로 실용적이지 않습니다. 따라서 다양한 번역기 기능이 필요합니다.

관련 문제