일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- useMutation error
- graphql
- 금별맥주
- 화이트해커를 위한 웹 해킹의 기술
- 예쁜술집 예술
- 신촌 소문난집
- typescript
- apolloclient
- 운정 소바동
- apollo react native
- 잠실새내 도그존
- 지보싶 신촌점
- 비동기배열
- graphql react native
- graphql mutation error
- 앙버터마카롱
- graphql with reactnative
- promise처리
- 고르드
- graphql with RN
- 홍대 토라비
- 화이트 해커를 위한 웹 해킹의 기술
- graphql 400
- 도그존
- 홍대 카페 장쌤
- 홍대 예술
- 토라비
- 비동기배열처리방법
- 잠실새내
- promise메서드
- Today
- Total
yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆
gdb 명령어 모음 본문
gdb 명령어 모음
시작과 종료
-
gdb (프로그램명): 시작
-
q(quit) / ctrl+d: 종료
-
file 프로그램명: 디버깅할 프로그램으로서 파일을 사용한다.
-
disas 함수명: 특정 함수의 어셈블리 코드 출력
-
disas [주소] [주소]: 주소 사이의 어셈블리 코드 출력
-
jump *[주소]: 주소로 강제적 분기 (주소 외에 행번호, 함수명도 가능)
-
set{타입}[주소]=값 : 특정 메모리에 값을 지정한다.
소스 보기
-
list: 현재 위치에서 소스파일의 내용을 10줄 보여준다.
-
list num1, num2: 소스 파일의 num1~num2까지를 보여준다
브레이크 포인트
-
break: 특정 라인이나 함수에 정지점을 설정한다. (b를 입력해도 break 실행)
-
break(b) 함수명: 함수명에 해당하는 함수의 시작 부분에 브레이크 포인트 설정
-
break num1: num1행에 브레이크 포인트 설정
-
b 주소: 특정 주소에 브레이크 포인트 설정
-
tb: 1회용 브레이크, 문법은 b와 동일
-
info b: 현재 브레이크 보기, 브레이크 상태 표시
-
clear(cl): 브레이크 포인트 지우기
-
delete(d): 모든 브레이크 포인트 지우기
진행
-
run(r): 프로그램을 시작한다. (break가 있다면 break까지 실행한다.)
-
run arg: 새로운 인수를 가지고 프로그램을 시작한다.
-
kill(k): 디버깅 중인 프로그램의 실행을 취소한다.
-
step(s): 한 줄씩 실행시킨다. 함수를 포함하고 있으면 함수 내부로 들어가서 한 줄씩 수행한다.
-
s num1: step을 num1번 수행한다.
-
next(n): 다음 행을 수행한다. 서브 루틴을 호출하면서 계속 수행한다. (호출이 발생하지 않으면 step과 같음)
-
n num1: next를 num1번 수행한다.
-
continue(cont): 현재 위치에서 프로그램을 계속 실행, 다음 브레이크 포인트까지 진행
-
u: 현재 루프를 빠져나간다.
-
finish: 현재 함수를 수행하고 빠져나간다.
-
return: 현재 함수를 수행하지 않고 빠져나간다.
와치 포인트
-
watch 변수명: 특정 변수에 와치 포인트를 설정, 특정 변수가 바뀔 때마다 브레이크가 걸리고 이전/현재 값을 출력한다.
변수 출력 관련
-
info locals: 현재 스택의 지역변수 모두를 출력한다.
-
info variables: 전역변수를 모두 출력한다.
-
info registers: 레지스터를 전체 출력한다.
-
p(print) 변수명: 해당 변수의 값을 출력한다. (포인터변수 입력시 주소값이 출력된다.)
-
p $레지스터명: 레지스터 값을 출력한다.
-
p *포인터: struct/class 배열일 때 배열의 크기를 알려준다.
-
p/출력형식 변수명: 출력 형식에 맞춰 변수 값을 출력한다.
-
display 변수명: 특정변수를 진행 중에 계속 출력한다.
스택 상태 검사
-
info f: 스택 프레임 내용 출력
-
info args: 함수 호출시 인자를 출력
-
info catch: 함수의 예외 핸들러를 출력
-
bt: 전체 스택 프레임 출력
-
up: 상위 스택 프레임으로 이동
-
down: 하위 스택 프레임으로 이동
메모리 상태 검사
: x/[범위][출력 형식][범위의 단위 (기본 4byte)][메모리 주소나 함수명]
출력 형식
-
t: 2진수
-
o: 8진수
-
d: 10진수
-
u: 부호 없는 10진수
-
x: 16진수 (주소를 보기 위해 가장 많이 사용)
-
c: 문자형 출력(크기가 4바이트 이상이면 처음 1바이트 출력)
-
f: 부동 소수점 값 형식으로 출력
-
a: 가장 가까운 심볼의 오프셋 출력
범위의 단위
-
b: 1byte
-
h: 2byte
-
w: 4byte
-
g: 8byte
ex) (gdb)x/32bx main
:: 메인함수 시작지점부터 b(1바이트)를 32번 출력하는데, x(16진수)로 출력하라.
자주 쓰는 gdb 사용해보기
'컴퓨터 시스템' 카테고리의 다른 글
gdb 사용하기 (0) | 2020.09.06 |
---|---|
어셈블리어 명령어와 범용 레지스터 (0) | 2020.09.06 |
8086 Memory Architecture, register (0) | 2020.09.06 |
컴퓨터 시스템의 기초 (0) | 2020.09.05 |