-
GDB로 STL 디버깅하기개발하면서/etc 2011. 9. 7. 00:39반응형
알고리즘문제를 풀면서 C++를 조금씩 조금씩 하고있습니다.
데이타 저장하고 빼내고 하는 아주 단순한 수준으로만 사용하고 있는데, 이마저도 어버버 할때가 많네요;;
C로 개발하면 GDB로 디버깅 할때 큰 불편 없이 진행할수 있는데 C++로 하니까 불편한게 있습니다.
바로 STL자료구조에 저장한 데이타를 보고 싶을때인데요, 예제 코드는 다음과 같습니다.
//vector::push_back #include #include int main () { std::vector myvector; int myint; std::cout << "Please enter some integers (enter 0 to end):\n"; do { std::cin >> myint; myvector.push_back (myint); } while (myint); std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n"; return 0; }
아래는 GDB로 vector 출력한 화면입니다.
값을 보고 싶은데 주소값만 써있고......검색을 해보니 역시 만든게 있네요
http://lumiera.org/documentation/technical/howto/DebugGdbPretty.html
http://sourceware.org/gdb/wiki/STLSupport
사용법은 간단합니다.
원하는 폴더로 이동해서 checkout 받은 후,
svn checkout svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python stlPrettyPrinter
~/.gdbinit을 생성합니다.
# .gdbinit : GDB Config file # # 3/2010 - Ichthyo: add python pretty printers for STL python import sys sys.path.insert(0, 'stlPrettyPrinter 가 설치된 경로') from libstdcxx.v6.printers import register_libstdcxx_printers register_libstdcxx_printers (None) end
짜잔~!!
반응형