Open tonykang22 opened 2 years ago
# (gdb) watch TheMem
Hardware watchpoint 1: TheMem
(gdb) c
Continuing.
Hardware watchpoint 1 : TheMem
Old value = 0
New value = 768
C_FirstMenu (mid=3) at menu1.c:577
# gdb TestProgram
# gdb TestProgram core
# gdb TestProgram 1234
[root@localhost systemd]# cat /proc/sys/kernel/core_pattern
# vi /etc/sysctl.conf
kernel.core_pattern = /var/crash/core.%e.%p.%h.%t
fs.suid_dumpable = 2
# sysctl -p
gdb_test1.c
Segmentation fault (core dumped)
~ at gdb_test1.c:4
// main.c #include <stdio.h> #include <stdlib.h> /* for atoi() */ void func1(void); void func2(void); int main() { int result; char number[] = "abcd"; printf("main() start\n"); func1(); func2(); result = atoi(number); printf("result: %d\n", result); return 0; }
// func1.c #include <stdio.h> void func1() { printf("func1 called\n"); }
#include <stdio.h> void func2() { printf("func2 called\n"); }
03. GDB 디버깅
GDB 디버깅 개요
특징
참고 사항
GDB로 할 수 있는 일
# (gdb) watch TheMem
Hardware watchpoint 1: TheMem
(gdb) c
Continuing.
Hardware watchpoint 1 : TheMem
Old value = 0
New value = 768
C_FirstMenu (mid=3) at menu1.c:577
GDB 기본 사용법
# gdb TestProgram
# gdb TestProgram core
# gdb TestProgram 1234
코어 덤프
[root@localhost systemd]# cat /proc/sys/kernel/core_pattern
# vi /etc/sysctl.conf
kernel.core_pattern = /var/crash/core.%e.%p.%h.%t
fs.suid_dumpable = 2
# sysctl -p
GDB 명령
GDB 실습 1
gdb_test1.c
파일 생성Segmentation fault (core dumped)
메세지를 확인할 수 있다.~ at gdb_test1.c:4
와 같이 문제 발생 시 자동으로 중단되며 정보 출력이 쉽게 확인된다.GDB 실습 2