Visualizer 문법

jjuiddong
Jjuiddong (토론 | 기여) 사용자의 2013년 3월 30일 (토) 13:12 판

(비교) ← 이전 판 | 최신판 (비교) | 다음 판 → (비교)
이동: 둘러보기, 찾기

비주얼 스튜디오 (Visual studio) 디버깅 할때, 변수 정보를 알 수 있게 하는 조사식 창이란 것이 있다. 비주얼 스튜디오는 조사식 창에 직접 만든 클래스나, 복잡한 라이브러리 객체를 보기 편하게 해주는 기능을 제공한다.


다음 글에 잠깐 언급되고 있다.

http://stackoverflow.com/questions/218056/visual-studio-debugger-tips-tricks-for-c-c-projects


비주얼라이저 라는 것도 있다. Visualizers http://msdn.microsoft.com/en-us/library/zayyhzts.aspx

Visualizers 에 대한 예제를 볼 수 있다. (한글)

http://minjang.egloos.com/468834

http://minjang.egloos.com/1339645

http://digitz.tistory.com/entry/autoexpdat-For-Gamebryo-23 (간단한 예제가 있음)


제대로된 설명을 해놓으셨다.

http://www.idigitalhouse.com/Blog/?p=83

http://www.virtualdub.org/blog/pivot/entry.php?id=120

http://mariusbancila.ro/blog/2007/04/06/tweaking-autoexpdat-for-custom-types-in-vs2005/

http://www.chromium.org/developers/how-tos/how-to-set-up-visual-studio-debugger-visualizers


비주얼 스튜디오가 설치되어 있는 폴더 위치에 스크립트 형태로 되어 있다. ..\Microsoft Visual Studio 9.0\Common7\Packages\Debugger\autoexp.dat

이 기능을 끄는 방법도 있다. http://cozyhouse.tistory.com/45


vs2008 기준으로 설명함.

간단히 클래스를 만들어보면서 설명한다. 스크립트 명령어에 대한 자세한 설명은 없지만, 자신이 만든 클래스의 변수들을 출력하는 정도의 문제는 해결할 수 있다. http://www.idigitalhouse.com/Blog/?p=83


AutoExpand 규칙과 Visualizer 규칙을 비교해서 설명하고 있다. 그러나 list나 vector 와 같이 루프를 돌면서 출력해야한다면 다른 문서를 봐야 된다. Marius Bancila’s Blog http://mariusbancila.ro/blog/2007/04/06/tweaking-autoexpdat-for-custom-types-in-vs2005/


내용은 조금 많지만, AutoExp.dat 파일로 할 수 있는 대부분의 것을 설명하고 있다. 시간이 많고, STL 등 복잡한 객체를 표현하고자 한다면 이 글을 봐야 한다. http://www.virtualdub.org/blog/pivot/entry.php?id=120


몇가지 짚고 넘어갈 것들

  1. text visualizer => 한글판 Visual Studio 에서는 <텍스트 시각화 도우미> 라고한다.
  2. AutoExp.dat 파일은 스크립트로 이루어진 파일이다. 스크립트는 두가지 종류가 있는데, AutoExpand rule 과 Visualizer rule 이 있다. 상이한 두 스크립트는 하나 파일에 담겨있고, 각각 [AutoExpand], [Visualizer] 명령어 아래에 와야 된다.
  3. 타입이 AutoExpand 와 Visualizer 에 동시에 등록되었다면, AutoExpand는 무시되고, Visualizer로 표시된다.
  4. AutoExp.dat 파일은 디버거가 실핼 될때마다 읽는다. 그러니 파일을 수정하고 비주얼스튜디오를 다시 실행 시킬 필요가 없다.
  5. $c = container 의 약자인 c 를 뜻한다. vs2008에서는 쓰이지 않는다.
  6. $e = element 의 약자인 e 를 뜻한다. for each 에서 각각의 값을 의미한다. vs2008에는 $c와 동일한 역할도 한다. "$e.멤버 변수" 로 변수에 접근 할 수 있다.
  7. $i = index 의 약자인 i 를 뜻한다. #array 에서 루프 될때 마다 꾸준히 증가하는 값이다. 자세한 내용은 #array 에서 확인하자
  8. $r = rank 의 약자인 r 을 뜻한다. 다차원 배열일 때 사용된다.
  9. [$e.!] -> 어떤 visualizer 형식도 사용하지 않은 기본 출력을 표시한다. vs2008 에서는 actual members 로 표현한다. 정확히 말하자면 다음처럼 되어 있다. #([actual members] : [$e,!])
  10. #switch 는 #array 안에서 동작하지 않는다. #array 안에서 쓰고싶다면 #if를 쓰자.
  11. #list, #tree 는 static 변수에서는 동작하지 않는다. 그러나 #array 는 잘 작동한다.
  12. autoexp.dat 파일에 충분한 예제 소스들이 있으니, 복잡하지 않은 타입은 따로 공부하지 않아도 쉽게 응용할 수 있다.


개인 도구
이름공간

변수
행위
둘러보기
도구모음