Programming/Debugging

커스터마이징한 자료구조 등의 내부를 보기 위한 디버깅방법 [출처] 커스터마이징한 자료구조 등의 내부를 보기 위한 디버깅방법|작성자 손돌

위너즈 2013. 9. 5. 17:43

< 요구 사항 >

 - 만든 자료구조의 디버깅( 조사식 등 )을 위해 내부를 보려 해도 볼수 없게 되는 상황

 - 예를 들어 HashMap을 하나 만들었는데 std::hash_map 을 디버깅 할때 처럼 안에 들어있는 정보를 조사식에서 보고 싶을 경우

 

< 해결 방법 >  Visual Studio 2005  환경

 - c:\Program Files\Microsoft Visual Studio 8\Common7\Packages\Debugger\autoexp.dat

 - 위의 파일을 메모장 등에서 읽어보면 무언가 스크립트로 짜져 있는 것을 볼수 있습니다.

 

autoexp.dat    : 이 파일에 보시면 std::vector 등의 STL 관련해서 STL이 어떻게 디버깅하고 있는지 알수 있습니다.

//====================

// std::vector

//====================

std::vector<*>{

        children

        {

               #array

               {

                         expr    :   ($c._Myfirst)[$i],

                         size    :   $c._Mylast-$c._MyFirst

               }

        }

}

 

* 커스터마이징된 자료구조( CVector ) 를 만들었고.. 이 것을 디버깅시에 보고 싶은 경우.........

//====================

// CVector

//====================

CVector<*>{

        children

        {

               #array

               {

                         expr    :   ($c.m_pBase             // 실제 배열 포인터 정보

                         size    :   $c.m_uiCount             // 현재 자료 갯수

               }

        }

}

출처 : http://blog.naver.com/sondool91?Redirect=Log&logNo=140092292363