티스토리 뷰
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사용이 너무 불편해 보이는것은 어쩔 수 없습니다.
'초보 우분투(리눅스)' 카테고리의 다른 글
U-Boot 디렉토리 용도 설명 (0) | 2024.05.27 |
---|---|
리눅스의 git clone 명령 (0) | 2024.05.25 |
리눅스 - 쓰레드를 사용하지 않고, fork를 사용하는 이유 (0) | 2024.05.24 |
우분투 부팅 에러 - BdsDxe: failed to load Boot0001 "UEFI VBOX CD-ROM (0) | 2024.05.14 |
VirtualBox - 하드 디스크 선택기 오류 - 디스크 이미지 파일을 열 수 없습니다. (0) | 2024.05.14 |