티스토리 뷰

반응형

GDB(GNU Debugger) 7.4는 GNU 프로젝트의 일환으로 개발된 강력한 디버깅 도구입니다. GDB는 C, C++, Fortran 등 여러 프로그래밍 언어로 작성된 프로그램을 디버깅하는 데 사용됩니다. GDB 7.4 버전은 다양한 버그 수정과 새로운 기능이 추가된 버전입니다. 아래에서는 GDB 7.4의 설치 및 주요 기능에 대해 설명하겠습니다.

GDB 7.4 설치

GDB 7.4를 설치하는 방법은 사용 중인 운영 체제에 따라 다를 수 있습니다. 여기서는 소스 코드로부터 GDB 7.4를 빌드하고 설치하는 일반적인 절차를 설명합니다.

1. 필요한 도구 설치:
   - GDB를 소스에서 빌드하려면 `gcc`, `make`, `flex`, `bison` 등의 도구가 필요합니다. 이를 설치하려면, 사용 중인 패키지 관리 도구를 사용합니다.
     sudo apt-get install build-essential flex bison
   
2. 소스 코드 다운로드:
   - GDB 7.4 소스 코드는 GNU 공식 사이트에서 다운로드할 수 있습니다. 웹 브라우저를 사용하거나 `wget` 명령을 사용할 수 있습니다.
    wget http://ftp.gnu.org/gnu/gdb/gdb-7.4.tar.gz
    
3. 소스 코드 압축 해제:
   tar -xzf gdb-7.4.tar.gz
   cd gdb-7.4
   
4. GDB 빌드 및 설치:
   - `configure` 스크립트를 실행하여 빌드 환경을 설정한 후, `make` 명령을 사용하여 빌드하고, `sudo make install` 명령을 사용하여 설치합니다.
     sh
     ./configure
     make
     sudo make install
     

GDB 7.4 주요 기능

GDB는 다양한 기능을 제공하여 프로그램 디버깅을 용이하게 합니다. GDB 7.4의 주요 기능은 다음과 같습니다:

1. 브레이크포인트 설정:
   - 코드의 특정 지점에서 실행을 중단할 수 있습니다.
     break main
     

2. 프로그램 실행 및 디버깅:
   - 프로그램을 실행하고, 중단점에서 멈출 수 있습니다.
     run

3. 스택 프레임 검사:
   - 현재 호출 스택을 검사하고, 함수 호출의 스택 프레임을 확인할 수 있습니다.
     backtrace
    
4. 변수 값 확인 및 수정:
   - 현재 스코프의 변수 값을 확인하고 필요하면 수정할 수 있습니다.
     print variable_name
     set variable_name = new_value

5. 단일 스텝 실행:
   - 프로그램을 한 줄씩 실행하며 디버깅할 수 있습니다.
     step
     next
     
6. 메모리 내용 검사:
   - 메모리 주소의 내용을 확인할 수 있습니다.
     sh
     x/10x memory_address
     
7. 조건부 브레이크포인트:
   - 특정 조건이 만족될 때만 브레이크포인트에서 실행을 중단하도록 설정할 수 있습니다.
     sh
     break line_number if condition
     

GDB 사용 예제

간단한 예제를 통해 GDB의 사용법을 알아보겠습니다. 아래는 `example.c` 파일의 코드입니다.
#include <stdio.h>
void say_hello() {
    printf("Hello, world!\n");
}

int main() {
    say_hello();
    return 0;
}


1. 컴파일:
   gcc -g -o example example.c
 
2. GDB 실행:
   gdb ./example
 
3. 브레이크포인트 설정 및 실행:
   (gdb) break main
   Breakpoint 1 at 0x40054e: file example.c, line 8.
   (gdb) run
   Starting program: /path/to/example

   Breakpoint 1, main () at example.c:8
   8           say_hello();

4. 단일 스텝 실행 및 변수 확인:
   (gdb) step
   say_hello () at example.c:4
   4           printf("Hello, world!\n");
   (gdb) step
   Hello, world!
   5       }
   (gdb) backtrace
   #0  say_hello () at example.c:5
   #1  0x000000000040054e in main () at example.c:8

5. 프로그램 종료:
   (gdb) continue
   Continuing.
   [Inferior 1 (process 1234) exited normally]
   (gdb) quit
   
GDB는 프로그램 디버깅을 위한 강력한 도구로, 다양한 기능을 제공하여 디버깅 작업을 효율적으로 수행할 수 있게 합니다. GDB 7.4는 안정적이고 많은 기능을 갖춘 버전으로, 소프트웨어 개발 및 유지 보수에 널리 사용됩니다.

그러나, 윈도우 개발툴에 익숙한 사람은 gdb사용이 너무 불편해 보이는것은 어쩔 수 없습니다.

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/03   »
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 31
글 보관함