소스를 통째로 로그 찍는 기능 2012-04-06
안녕하세요 Geeks_Company 입니다.
요 기능은 많은 양의 소스를 분석하다 보면 꼭 필요하다 싶은 기능인데요.
예를 들어서 복잡한 알고리즘의 경우 워낙 복잡하게 얽혀 있는 로직들이 많습니다.
이럴 경우 어디에서 어디를 호출하는지 로그를 찍는 기능들이 간절합니다.
모든 소스 전체를 대상으로 로그를 찍을 필요는 없지만, 특정 함수안에서 플로우 분석을 하기 위해선,
각 실행되는 라인별 소스 출력은 많은 도움이 됩니다.
캡쳐 되는 화면을 토대로 보여드리겠습니다.
addLog가 오늘 설명 드릴 기능 입니다.
대상 소스를 보여드리겠습니다.
요 소스를 로그로 찍는 소스를 만들겠습니다.
복사하기를 합니다.
이렇게 함수를 호출하면, 알아서 복사된 텍스트를 갖고 와서 파싱 처리 합니다.
복잡하게 소스 분석된 짧은 Summary 가 나오는데요.
무시 하고, 클립보드에 복사된 텍스트를 직접 붙여 넣어보겠습니다.
기존에 있는 소스와 로그를 찍기위한 소스를 같이 집어 넣었습니다.
원본 소스를 Region 처리 하면,
요런 소스가 되고, 실행 처리 하게 되면 마지막 줄을 통해서 결과를 보여줍니다.
Console.WriteLine(strbdLog.ToString());
실행 결과 입니다.( 참고로 이 소스는 for, while, if 문안에서 프린트 문을 삽입한게 전부 입니다)
요게 원래 제 프로그램의 로직 결과 이며 이제 저장된 로그를 콘솔로 보여드리겠습니다.
총 for 문이 5번 실행 되었고, while 문 역시 5번 실행 되었고 if문은 1번 실행됨을 알 수 있습니다.
간단 파싱 처리를 사용한건데요. C# or VB쪽 파싱 처리가 어느정도 완성되면, 각 구문별로 로그 찍는걸 좀더 디테일하게 할수 있을 듯 합니다.
긴글 읽어 주셔셔 감사 합니다.
'습작 및 R&D' 카테고리의 다른 글
함수 자동 생성기 (0) | 2012.04.28 |
---|---|
파싱 응용. (0) | 2012.04.23 |
드디어 자동 빌드 & Dynamic Load를 접목했네요 (0) | 2012.03.29 |
VB 함수 및 변수 추출 기능2. (0) | 2012.03.18 |
VB 변수 추출 기능. (0) | 2012.03.17 |