min's devlog

자주 쓰이는 명령어 본문

Linux/Linux OS

자주 쓰이는 명령어

값진 2021. 6. 6. 00:06

1. gdb file

file을 gdb로 로드한다.

 

1-1. gdb -q file

-q 혹은 --quiet 옵션을 주면 gdb를 시작할 때 버전 정보 등을 출력하지 않도록 한다.

 

1-2. gdb --args file arg1 arg2

gdb 실행 시 --args 옵션을 주면 file과 함께 인자를 전달할 수 있다. (위 예에서는 arg1, arg2 전달)

 

 

2. run(r)

gdb로 로드한 프로그램을 실행한다.

run arg1 arg2 형태로 프로그램을 시작할 때 인자값을 넘길 수 있다. 혹은 처음에 gdb --args file arg1 arg2 로도 인자값을 전달할 수 있다.

 

3. disas(disassemble) function

function에 대한 disassemble을 수행 한다.

 

 

 

 

 

4. break *address

address 위치에 브레이크 포인트를 설정한다. 직접 주소값을 명시하거나 *main+3 이런식으로 사용할 수 있다.

 

 

 

5. x

 

주어진 주소 내의 메모리 값이 무엇인지를 확인하는 용도로 사용한다.(addr이나 /nfu addr 등의 옵션을 줄 수 있다)

 

 

- n (repeat count)

몇 개의 메모리 유닛을 보여줄지 지정한다. n은 decimal integer로 지정되며 디폴트 값은 1이다

 

- f (display format)

읽은 메모리 값을 어떻게 해석할 것인지 지정한다. 디폴트 값은 x(hexadecimal)이고, 이 외에도 o(octal), d(decimal), s(string), i(machine instruction) 등이 있다.

 

- u(unit size)

읽을 메모리 유닛의 사이즈를 지정한다. 지정할 수 있는 옵션은 b(byte), h(two bytes), w(four bytes), g(eightbytes)가 있다.

 

ex) x/x $ebp+0xffffffd8

 

 

주소 위치에 expression이 들어갈 수도 있다.

명령 수행의 결과에서 왼쪽 0xbfffdca0은 ebp값에 0xffffffd8을 더한 값이고, 오른쪽 0x42130ef8은 해당 주소에 저장되어있었던 값을 16진수로 표현한 결과이다.

 

ex) x/s

 

 

0x8048680 주소에 저장된 값을 string format으로 읽는다.

 

 

5-1. print variable

variable에 저장된 값을 출력 한다.

ex) print main

 

 

6. continue(c)

다음 브레이크포인트 전까지 코드를 실행한다.

 

 

7. ni(nexti) [n]

라인 하나를 실행 하되 함수 호출문은 건너 뛴다. n을 명시 하면 n개 만큼 코드를 실행한다.

 

 

8. si(stepi) [n]

 

라인 하나를 실행 하되 함수 호출 시 해당 함수로 들어 간다. n을 명시 하면 n개 만큼 코드를 실행 한다.

 

 

9. delete [n]

 

설정했던 모든 브레이크 포인트들을 삭제한다. n을 명시해서 특정 브레이크 포인트만 삭제할 수도 있다.

 

 

10. info registers [register name]

 

레지스터들의 값들을 출력한다. register name을 지정해서 특정 레지스터에 대한 값만 확인할 수도 있다.

 

 

 

'Linux > Linux OS' 카테고리의 다른 글

Cat, Sort  (0) 2021.06.13
프로세스 제어  (0) 2021.06.06
프로세스  (0) 2021.05.03
조건명령어  (0) 2021.04.18
전면처리와 후면처리  (0) 2021.04.17
Comments