안녕하세요.
오랜만에 프로그램 관련 내용을 적네요.
그간 집에 일도 있고, 이것저것 복잡해서 이제서야 좀 업데이트를 하게 되었네요.
여기서 보여 드릴 내용은 분석의 사용예 입니다.
이 기능을 통해서 특정 기능 클릭시 모든 함수 추적이 가능하며,
시작 과 종료를 비교해서 종료 이벤트시 어떠한 함수가 실행되었는지 추적이 가능합니다.
오늘 참고로 사용할 프로젝트는 code project에 등록되어 있는
XML explore 입니다.
모든 저작권은 XML explore 에 있으며, 문제가 될 경우 이 글을 삭제 하겠습니다.
http://xmlexplorer.codeplex.com/
주소는 위와 같으며 XML 파싱 속도가 빠른게 장점인건데요.
일단 위의 프로젝트를 다운 받아서 압축을 풀었습니다.
이곳에서 핵심 프로젝트 내용입니다.
Program.cs입니다.
추적을 해보니,
이곳에서 초기 인스턴스를 불러 오는 것 같군요.
안의 내용을 보니 TabbedXmlExplorerWindow 클래스가 핵심일꺼 같습니다.
이제 직접 파일을 열어 보고 추적을 해보겠습니다.
추적 전에 program.cs메인에 Console창을 추가 합니다.
코드는 간단합니다.
이제 프로그램 내부에 정적 분석 전 함수의 내역을 봅니다.
총 2586줄로 깔끔하게 region 처리가 되었네요.
모든 함수에 function 을 추가 시키는 기능을 실행 합니다.
대략 40초쯤 걸린 것 같습니다.
총 3184 줄로 추적을 위해 추가된 코드가 600줄 정도 됩니다.
이제 실행을 해보겠습니다.
최초 시작 부분부터 보여 드리겠습니다.
최초 생성자 부분입니다.
두번째 UpdateTools 입니다.
보시면 아시겠지만, UpdateTools는 bool을 받는 함수로 overriding 되었기에
인자 값이 false로 던져 지게 됩니다.
그리고 제 추적 코드가 받은 인자값 까지 다 추적을 하고 있습니다.
빠른 분석을 위해서 overriding 된 함수 구분은 따로 추가 할 영역인 것 같습니다.
…
이제 XML을 열어 보겠습니다.
열기 클릭 했을 때 입니다.
읽은 파일이름 (1개)이기에 출력이 되었습니다.
이후 함수 종료 처리시 이뤄지는 상황을 입니다.
편의상 Winmergy 를 사용합니다.
총 변경된 부분의 시작 내용입니다.
시작 후 추적한 내용의 끝입니다.
시작 후 종료시점의 내역입니다.
감사 합니다.
파일은 추가 된 코드 내역입니다.
'습작 및 R&D' 카테고리의 다른 글
소스의 총 라인 분석 툴 (0) | 2014.02.16 |
---|---|
간단한 흐름도 프로그램. (0) | 2014.02.09 |
CS_Helper 추가 기능 8 (0) | 2013.07.26 |
CS_Helper 추가기능 7 (0) | 2013.07.25 |
CS_Helper 추가기능 6 (0) | 2013.07.25 |