1. 프로그램 수행 관련 명령


  $ gdb -q [파일명]

    => gdb를 조용히(?) 켠다


  $ run [args] 

    => 디버깅할 프로그램의 수행 시작


  $ set args [args]

    => 프로그램이 시작 될 때, 전달할 인자 설정


  $ next [n]

    => breakpoint를 걸은 프로그램에서 다음 n(default=1)개의 문장을 수행하고 멈춘다.

    => 함수인 경우 함수 전체를 수행합니다.


  $ step [n] 

    => next [n]과 비슷합니다.

    => 차이점으로, 함수의 경우 함수에 들어가 한 문장씩 수행합니다.


  $ continue [n]

    => Ctrl+C이나 breakpoint에 멈추어진 프로그램의 수행을 계속합니다.

    => 여기서 n이 지정될 경우 n번째 breakpoint에서 수행을 멈추게 됩니다.



2. 브레이크 포인트 


  $ watch [EXP]

    => expression EXP 에 대한 watchpoint를 설정합니다.

    => EXP의 값이 변할 때마다 프로그램의 수행을 멈춥니다.


  $ delete [N]

    => breakpoint를 제거합니다. 인자값이 없으면 모든 bp를 제거합니다.

    => delete breakpoint 1 ( 예시 )


  $ enable [N .. ]

    => breakpoint를 enable 시킵니다. N은 breakpoint 숫자입니다.



3. 상태 확인

 


  $ info breakpoints [N]

    => 설정된 breakpoint 상태를 보여줍니다.


  $ info args

    => 현재 스택 프레임의 인자 변수를 보여줍니다.


  $ info display

    => 프로그램이 멈출 때 출력할 expression을 보여줍니다.




4. 이 외의 명령어


  $ quit

    => gdb를 종료합니다.


  $ make [args]

    => make를 실행합니다.


  $ set disassembly-flavor intel

    => intel 형식으로 어셈블리를 봅니다. ( set dis int 줄임 가능 )


  $ disassembly [func_name]

    => 함수의 어셈구문 코드를 확인합니다.


  $ print [$register or func_name]

    => 스택에 저장된 값을 보여줍니다.


  $ x/x [$register]

    => 해당 레지스터에 들어있는 값을 Hex로 표현


  $ x/5s [$register]

    => 해당 레지스터에 들어있는 값을 String으로 5개까지 표현


  $ x/d [$register]

    => Decimal


  $ x/i [$register]

    => Instructions


  $ list

    => Source File이 어딨는지 보여줌


  $ where

    => 어디에서 실행되었는지 보여줌


  $ main info sec

    => 실행가능한 섹션들을 보여줍니다.



'시스템' 카테고리의 다른 글

dummy 크기 정확히 파악하기 - 출처 http://beist.org  (0) 2016.05.01
코어덤프  (0) 2016.05.01
공유메모리  (0) 2016.02.18
시스템 $0x80  (0) 2016.02.11
프로시저와 스택 구조  (0) 2016.02.10

+ Recent posts