달력

112017  이전 다음

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  

'gdb'에 해당되는 글 2건

  1. 2011.09.07 GDB로 STL 디버깅하기
  2. 2009.10.05 여러개의 파일 gdb로 디버깅하기 (2)
알고리즘문제를 풀면서 C++를 조금씩 조금씩 하고있습니다.

데이타 저장하고 빼내고 하는 아주 단순한 수준으로만 사용하고 있는데,  이마저도 어버버 할때가 많네요;;

C로 개발하면 GDB로 디버깅 할때 큰 불편 없이 진행할수 있는데 C++로 하니까  불편한게 있습니다.

바로 STL자료구조에 저장한 데이타를 보고 싶을때......바로


예제 코드는 다음과 같습니다.

아래는 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


짜잔~!!



저작자 표시 비영리
신고
Posted by 오산돌구

현재 리눅스에서 개발을 시작했는데 안될때마다 일일히 printf로 변수 찍어서 디버깅을 해나갔는데 이게 정말 짜증나는것이었다.

그래서 검색하던중 gdb라는 프로그램을 알게되었다.

 

우왕 +_+ ㅋㅋ 원하던 거다~!!!

사용법에 관한 글들은 많이 있으니 패스하고,  많은 gdb관련 문서들...

 

내가 필요한건 여러개 파일을 gdb로 디버깅하는것이기 때문에 이것에 대해 적어볼까 한다.

 

우선 임의로 만든 소스는 다음과 같다

//kang.c
#include "kang.h"
int sum(int i, int j)
{
       return i +j;
}
//kang.h
int sum(int i, int j);
//main.c
#include <stdio.h>
#include "kang.h"
int main()
{
   int i = 3, j = 4;
   int hab = 0;
   hab = sum(3, 4);
   printf("%d + %d = %d\n", i, j, hab);
   return 0;
}

 

 

오브젝트 파일을 만들고 실행파일을 만들면 안된다는 것이다.(실행은 되는데 gdb가 안됨)
즉 아래와 같이하면 안된다는 것이다~!!

gcc -c kang.c
gcc -c main.c
gcc -o main main.o kang.o -g

gcc –o main main.c kang.c –g 명령어로 오브젝트 파일 생성 없이 바로 실행파일을 만든다.

list명령어만 실행하면 main함수가 있는 파일만 출력하기 때문에 다른 파일의 소스를 보고 싶다면 다음과 같이 한다.

list kang.c:3,10

list kang.c:sum test해보니 sum함수가 정의된 라인을 기준으로 위로 4줄, 아래로 5줄이 출력된다

 자 Visual Studio가 안부럽다~~!!!!......진짜? ㅋㅋㅋ

신고
Posted by 오산돌구