달력

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
  •  
  •  

현재 리눅스에서 개발을 시작했는데 안될때마다 일일히 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 오산돌구