본문 바로가기

GDB

AIX dbx 사용 core 분석 C 프로그램에서 늘 마주치는 것이 코어덤프인데 어떤 코드 때문에 발생했는 지 찾을 때 사용하는 것이 gdb 와 dbx 명령이다. AIX 에서는 dbx명령을 주로 사용한다. 이렇게 dbx 를 사용하여 추적하기 위하여서는 컴파일 할 때 -g 옵션을 줘서 컴파일을 해 줘야 한다.| 샘플프로그램 작성 샘플 프로그램인 sfw0023.c 에 아래와 같이 코어덤프가 발생할 코드를 기술한다. ( 324 라인 ) bug 라는 포인터에는 메모리가 할당되지 않았기 때문에 값을 write 하면 core 덤프가 발생하게된다. 12345678910111213 318 static long 319 a000_validation(sfw0023_ctx_t *ctx) 320 { 321 long rc = RC_NRM; 322 char *bu.. 더보기
gdb 사용법 흔히 유닉스 C 프로그램을 개발하는 프로젝트에서 코어덤프가 발생하게 되면 gdb 를 사용하게 된다. gdb 를 이용하면 프로그램이 어디를 어떻게 흘러갔는지 스택정보를 보여주게 되므로 코어가 발생된 위치를 추측하는데 도움이 된다. 대부분의 gdb 사용법은 인터넷에 나와 있는 것과 동일하다. 그런데 흔히 사용하는 명령은 bt (where) 정도 밖에 없다. 이런 bt 명령을 치기 위해서 file 코어파일 을 이용하여 코어가 발생한 실행 파일을 알아 내고 다시 gdb 실행파일 코어파일 을 하여 gdb 모드로 들어가서 bt 명령을 입력하게 된다. 이런 과정을 한방에 할 수 있는 쉘을 작성해 놓고 사용하면 편하다. 보통 gdb [프로그램명] [코어파일명] 이렇게 실행한다. 아래 쉘이름이 gdb.sh 라고 하면 g.. 더보기