본문 바로가기

개발/App Developer

gdb 디버거

간단한 명령어는

list

현재 위치에서 소스 파일의 내용을 10 보여준다

list 2, 15 : 소스 파일의2 ~ 15 까지를 보여준다.

run

프로그램을 시작한다.(break 있다면 break까지 실행)

run arg : 새로운 인수를 가지고 프로그램을 시작한다.

arg “*” “[…]” 포함할 수도 있다.

쉘의 사용까지도 확장될 있다.

“<”,“>” , “>>”같은 입출력 방향 재지정기호도 또한 허용된다.

break

특정 라인이나 함수에 정지점을 설정한다.

break function : 현재 파일 안의 함수 function 정지점을 설정한다.

break file:function : 파일file안의 function 정지점을 설정한다.

watch : 감시점 설정(감시점은 어떤사건이 일어날 때에만 작동한다)

until : 실행중 line까지 실행

clear   

특정 라인이나 함수에 있던 정지점을 삭제한다.

delete 

몇몇 정지점이나 자동으로 출력되는 표현을 삭제한다.

next

다음 행을 수행한다. 서브루틴을 호출하면서 계속 수행한다.

호출이 발생하지 않으면 step 같다.

next n : 이를 n 수행하라는 의미

step

줄씩 실행 시킨다.

함수를 포함하고 있으면 함수 내부로 들어가서 줄씩 실행시킨다.

print

print expr : 수식의 값을 보여준다.

display

현재 display 명령의 목록을 보여준다.

bt

프로그램 스택을 보여준다. (backtrace)

kill

디버깅 중인 프로그램의 실행을 취소한다.

file

file program : 디버깅할 프로그램으로서 파일을 사용한다.

cont

continue : 현재 위치에서 프로그램을 계속 실행한다.

help

명령에 관한 정보를 보여주거나 일반적인 정보를 보여준다.

quit

gdb에서 빠져나간다.

 

GDB같은 디버거의 목적은 프로그램 실행동안 프로그램 내부에서 진행되고 있는 것이 무엇인지를 여러분이 알도록 하는데에 있다. -- 또는 다른 프로그램이 죽는 순간에 무엇을 했는지.

GDB는 여러분이 버그를 잡도록 도와주는 4 종류의 일들(또 이것들을 지원하는 다른 것들)을 할수 있다.

  • 프로그램을 시작할때 프로그램의 행동에 영향을 줄수 있는 것을 지정할수 있다.
  • 여러분의 프로그램을 지정된 조건에서 멈추도록 만든다.
  • 여러분의 프로그램이 멈추었을때 무엇이 일어났는지를 시험할수 있다.
  • 여러분의 프로그램내의 어떤것을 바꾸어서, 여러분이 버그를 고칠수 있도록 실험을 할수 있게 하고 다른것에 대해 배우도록 한다.

여러분은 C나 C++로 쓰여진 프로그램을 디버깅하기 위해 GDB를 사용할수 있다.

Modula-2 와 Chill는 부분적으로 지원한다.

sets, subranges, 파일 변수들 또는 중첩된 함수들을 사용하는 Pascal 프로그램에 대한 디버깅은 현재 작동되지 않는다.

GDB는 표현식 들어가기, 값 출력, 또는 Pascal 문법을 사용하는 비슷한 특징들은 지원하지 않는다.

비록 표현식 들어가기, 값 출력, 또는 Fortran 문법에서 사용하는 비슷한 특징들을 아직 지원하지 않아도

GDB는 Fortran으로 짜여진 프로그램을 디버깅하기 위해 사용 될수 있다.

중요 부분을 추적하기 위해 몇몇 변수를 참조하는것이 필요하다


'개발 > App Developer' 카테고리의 다른 글

SQLite  (0) 2010.09.01
NSDictionary  (0) 2010.09.01
Disclosure indicator , detail Disclosure Button  (0) 2010.09.01
  (0) 2010.09.01
Notification  (0) 2010.09.01