이번 메일진에는 “BugTrap”이라는 공개 에러 리포트 라이브러리에 대해서 간단히 소개하겠습니다.^^
최근에 제가 가입한 스터디카페를 통해 알아서, 현재 사용중에 있는데 상당히 편리하고 괜찮은 물건입니다.
VS가 설치되지 않은 PC에서(즉 개발자가 아닌 사용자의 PC에서) 게임이나 툴들이 에러가 났을 때(소위 뻑났을 때) 원인을 분석하는 방법중에 가장 유용한 방법이 미니덤프파일(*.dmp)파일을 남겨서 덤프파일을 분석 하는 방법입니다.
버전만 맞는 소스코드와 PDB파일만 있다면, 에러가 났을때의 상황을 거의 100%재현이 가능하고 분석도 용이하게 해주는 방법입니다.
에러가 난 코드와 뻑이 났을때의 변수값이나 콜스택등을 바로 분석할 수 있죠.
에러난 PC에서 dmp파일을 남긴 후, 이것을 개발자 PC로 전송받는 방법은 여러 가지가 있습니다. 일반적으로 FTP서버나, HTTP서버로 전송을 받는데, 이러한 기능을 자동으로 해주는 공개 라이브러리가 지금 소개할 “BugTrap”입니다.
장점은 라이브러리만 제공하는 게 아니라. TCP서버나 HTTP서버(Web) 설치 버전도 제공이 되며, 에러 리포트에 덤프 파일뿐만 아니라, 에러가 발생한 PC의 사양 등이 포함된 에러 로그 파일과 에러날 당시의 스크린샷파일도 같이 보내준다는 것입니다.
내부에 Zip라이브러리까지 포함하고 있어서 이러한 에러 리포트 파일들은 zip으로 압축되어 전송되기 때문에, 용량에 대한 부담도 자동으로 해결해 줍니다.
아래 내용은 제가 회사에서 사용하기 위해서 간단한 Overview로 작성한 내용입니다. 더욱 자세한 내용을 원하시면 BugTrap링크 페이지에 가시면 자세한 소개를 보실수 있으며, 무료로 다운받으실 수 있습니다.
l Code Project에 존재하는 공개 에러 리포트 라이브러리
l BugTrap 라이브러리를 사용한 프로그램이 에러가 발생하게 되면, 미니덤프 파일(.dmp), 에러 로그(.xml), 스크린샷(.bmp)등을 생성한 후 zip파일로 생성 파일들을 압축하여, 로컬 컴퓨터에 저장하거나 BugTrap 서버로 전송할 수 있다.
l BugTrap Server 프로그램을 이용하면, 자동으로 HTTP서버(Web), TCP서버를 설치할수 있으며, 간단한 설정만으로 에러 리포트를 서버로 전송 받을 수 있다.
l 에러가 난 경우 GUI 윈도우 창이 표시되어서 다양한 정보를 알 수 있으며, 원클릭으로 BugTrap Server에 에러 리포트를 전송할 수 있다.
l 크게 BugTrap Server 프로그램과 BugTrap 라이브러리로 구성되어 있으며, 서버 없이 라이브러리만으로도 사용이 가능하다.
l 로컬 컴퓨터에 덤프파일 저장 및, TCP와 HTTP을 이용하여 BugTrap Server에 에러 리포트를 전송할 수 있으며, BugTrap Server는 설치 프로그램이 포함되어 있다.
l 서버 프로그램과 헤더파일들과 Lib, DLL 파일들로 구성되어있다.
l 인스톨 버전과 잘 정리된 Document를 제공한다.
l 사용은 자유지만, 소스는 공개되어 있지 않다.
< Dump파일은 Mail Server를 통해 개발자에게 전송되거나, BugTrap Server로 전송된다 >
l 프로그램 실행중 에러가 발생하면 아래와 같은 창이 뜬다.
l 위 창에서 ‘Submit Bug’ 버튼을 클릭하면 설정된 BugTrap Server로 덤프파일이 전송되고, ‘mail to…’를 클릭하면 설정된 mail주소로 덤프파일이 첨부된 메일이 발송된다.
l ‘More…’버튼을 클릭하면 아래와 같은 확장된 창이 뜬다.
1.4. BugTrap Server
l BugTrap을 이용하여, 덤프파일을 전송하는 방법은 아래 3가지가 있다.
l 프로그램에서 에러가 발생했을때, 등록된 E-Mail에 덤프파일을 첨부하여 개발자에게 메일로 발송한다.
l 장점
n 추가로 BugTrap Server를 설치할 필요가 없다.
n 방화벽을 통과하여 전송할수 있다.
n OutLook같은 일반 메일 클라이언트를 이용하여 메일을 작성하여 전송할수도 있다. 아니면 BugTrap에 내장된 간단한 메일 작성 프로그램을 이용하여 작성하여 전송한다.
l 단점
n 여러 프로그램으로부터 날라오는 에러 리포트를 필터링하여 관리할 수 없다.
n 첨부파일(덤프파일)이 너무 큰 경우 메일로 전송할 수 없을 수도 있다.
1.4.2. TCP 기반 프로토콜을 이용하여 전송하는 방법
l BugTrap Server 프로그램을 특정 서버 컴퓨터에 설치하여, 클라이언트 프로그램에서 에러가 발생한 경우, TCP기반 프로토콜을 이용하여 서버로 덤프파일등을 전송한다.
l .NET 플래폼 기반의 서버 프로그램과, 플래폼 독립적으로 사용할 수 있는 Java기반의 서버 프로그램의 두 종류가 있다.
l 장점
n 에러 리포트는 서버에서 설정한 저장소(폴더)에 프로그램별, 버전별로 폴더가 생성되어 구별되어 저장된다. 설정파일에서 설정한 프로그램의 에러리포트만 저장할 수 있도록 필터링이 가능하다.
n 사이즈의 제한이 없으며, TCP를 사용하기 때문에 전송속도가 빠르다.
n BugTrap Server 프로그램이 가볍고 효율적이다.
n Web Server가 필요 없어 어떤 컴퓨터에서 서버를 설치할 수 있다.
l 단점
n TCP를 사용하기 때문에, 서버의 방화벽을 뚫지 못할수도 있다.
1.4.3. Http 기반 프로토콜을 이용하여 전송하는 방법 (WEB)
l IIS가 설치된 Web Server에 Web Server용 Bug Trap Server를 설치하여, HTTP 기반 프로토콜을 이용하여, 서버로 덤프파일등을 전송한다.
l 장점
n 에러 리포트는 서버에서 설정한 저장소(폴더)에 프로그램별, 버전별로 폴더가 생성되어 구별되어 저장된다. 설정파일에서 설정한 프로그램의 에러리포트만 저장할 수 있도록 필터링이 가능하다.
n HTTP기반이기 때문에 방화벽을 통과한다.
n 사이즈의 제한이 없다.
l 단점
n BugTrap Server가 설치될 서버 컴퓨터에 Web Server이어야만 한다.
n HTTP 프로토콜은 TCP 프로토콜에 비해서 속도면에서 비효율 적이다.