티스토리 뷰
gdb C Object File Debugger.
C 코드 분석중 Debugger를 돌려서 확인 해 볼 필요가 생겨서 예전에 사용해보고 한동안 잊고 지냈던 gdb에 대해 다시한번
재조명 하고자 글을 남겨본다.
select.c라는 파일을 컴파일한다.
Step 1. GCC Compile
-g옵션을 사용해 줘야 gdb debugging 이 가능하다.
$ gcc -g -o [object 명] [소스파일 명]
Step 2. gdb 실행
$ gdb [object 명]
Step 3. Break Point.
gdb debugger에서 프로그램 실행 및 break point를 설정하여 좀더 수월한 debugging이 가능하도록 해주는 명령에 대한
소개.
- List
기본적으로 10라인만 출력되며 set listsize 50 등으로 출력사이즈 조절이 가능하다.
(gdb) l
1 #include <sys/time.h>
2 #include <sys/types.h>
3 #include <unistd.h>
4 #include <fcntl.h>
5 #include <stdlib.h>
6 #include <string.h>
7 #include <stdio.h>
8
9 int main()
10 {
- Break Point 설정
편의상 b 나 i 같은 시작 initial로만 명령 수행이 가능하다. (b = breakpoint, i = infomation )
(gdb) b 10
Breakpoint 1 at 0x40071a: file select.c, line 10.
(gdb) i b
Num Type Disp Enb Address What
1 breakpoint keep y 0x000000000040071a in main at select.c:10
- Process Run
위에서 설정한 break point 10line에 정확시 걸려서 멈춘 상태이다.
(gdb) r
Starting program: /home/rocksea/study/c/select
Breakpoint 1, main () at select.c:10
10 {
- Next
n 을 이용하여 다음라인의 Process의 실행을 진행 할 수 있다.
(gdb) n
22 if ((fd[0] = open("/tmp/testfile", O_RDONLY)) == -1)
print를 통해 변수에 할당된 값, 주소값 등을 볼 수 있다.
(gdb) p state
$1 = -5856
(gdb) p &state
$3 = (int *) 0x7fffffffe768
일단 이정도만 알아도 간단한 Debugging정도는 할 수 있을 것이다.
사용하면서 필요한 부분은 더 보충 할 것이다.
.by rocksea
'Developer' 카테고리의 다른 글
[linux] yum daum repository 설정 (0) | 2014.02.04 |
---|---|
[webmail] roundcube mail server installation guide (0) | 2014.01.28 |
[linux] usb linux live cd 만들기. (0) | 2014.01.24 |
[php] Codeigniter & Nusoap 을 이용한 webservice 구축 (0) | 2014.01.21 |
[php-fpm] php fpm installation guide (0) | 2014.01.16 |
- Total
- Today
- Yesterday
- 도덕경
- 영작
- PostgreSQL
- maven
- hdfs
- 스페인 여행
- AWS
- ubuntu
- Python Django
- 비지니스 영어
- it
- 비교구문
- k8s
- 해외여행
- JBOSS
- 다낭
- 조동사
- NGINX
- hadoop
- redis
- Python
- mongoDB
- 가정법
- memcached
- 여행
- 대명사 구문
- Business English
- nodejs
- 베트남
- 영문법
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |