gdb(1) - wariua/manpages-ko GitHub Wiki
gdb - GNU λλ²κ±°
gdb [-help] [-nh] [-nx] [-q] [-batch] [-cd=dir] [-f] [-b bps] [-tty=dev] [-s symfile] [-e prog] [-se prog] [-c core] [-p procID] [-x cmds] [-d dir] [prog|prog procID|prog core]
GDB κ°μ λλ²κ±°μ λͺ©μ μ νλ‘κ·Έλ¨ μ€ν μ€μ κ·Έ "λ΄λΆ"μμ λ¬΄μ¨ μΌμ΄ μΌμ΄λκ³ μλμ§λ₯Ό, λλ νλ‘κ·Έλ¨μ΄ μ£½λ μκ°μ λ νκ³ μμλμ§λ₯Ό μ μ μκ² ν΄ μ£Όλ κ²μ΄λ€.
GDBλ ν¬κ² λ€μ λ€ κ°μ§λ₯Ό (κ·Έλ¦¬κ³ μ΄λ₯Ό μ§μνλ©° λ€λ₯Έ κ²λ€μ) ν΄μ νμ₯μμ λ²κ·Έ μ‘λ κ±Έ λλλ€.
-
νλ‘κ·Έλ¨μ μμνλ€. λμμ μν₯μ λΌμΉ μ μμ 무μμ΄λ μ§μ ν μ μλ€.
-
μ§μ ν 쑰건μμ νλ‘κ·Έλ¨μ΄ μ μ§νκ² νλ€.
-
λ¬΄μ¨ μΌμ΄ μΌμ΄λ¬λμ§λ₯Ό νλ‘κ·Έλ¨ μ μ§ μνμμ μ‘°μ¬νλ€.
-
νλ‘κ·Έλ¨ λ΄μ μ΄κ² μ κ²μ λ°κΎΌλ€. κ·Έλμ νλ² μ΄λ€ λ²κ·Έμ ν¨κ³Όλ₯Ό λ°λ‘μ‘κ³ μ λ€λ₯Έ λ²κ·Έλ₯Ό μ΄ν΄λ³Ό μ μκ² ν΄ μ€λ€.
GDBλ₯Ό μ¬μ©ν΄ C, C++, Fortran, Modula-2λ‘ μμ±λ νλ‘κ·Έλ¨μ λλ²κ·Έ ν μ μλ€.
μ Έ λͺ λ Ή "gdb"λ‘ GDBλ₯Ό μ€ννλ€. μμνκ³ λλ©΄ GDB λͺ λ Ή "quit"μΌλ‘ λκ°λΌκ³ ν λκΉμ§ ν°λ―Έλμμ λͺ λ Ήλ€μ μ½μ΄ λ€μΈλ€. "help" λͺ λ Ήμ μ°λ©΄ GDB λ΄μ₯ λμλ§μ λ³Ό μ μλ€.
μ무 μΈμλ μ΅μ μμ΄λ "gdb"λ₯Ό μ€νν μ μλ€. νμ§λ§ GDBλ₯Ό μ€νν λ κ°μ₯ νν λ°©μμ μΈμ ν κ°λ λ κ°λ‘ μ€ν νλ‘κ·Έλ¨μ μ§μ νλ κ²μ΄λ€.
gdb program
μ€ν νλ‘κ·Έλ¨κ³Ό μ½μ΄ νμΌμ λͺ¨λ μ§μ ν΄μ μμν μλ μλ€.
gdb program core
λλ μ€ν μ€μΈ νλ‘μΈμ€λ₯Ό λλ²κ·Έ νκ³ μΆλ€λ©΄ λ λ²μ§Έ μΈμλ‘ νλ‘μΈμ€ IDλ₯Ό μ§μ ν μ μλ€.
gdb program 1234
gdb -p 1234
κ·Έλ¬λ©΄ GDBκ° νλ‘μΈμ€ 1234μ λΆκ² λλ€. (λ¨ 1234
λΌλ νμΌμ΄ μμ΄μΌ νλ€. GDBλ μ½μ΄ νμΌμ λ¨Όμ νμΈνλ€.) -p
μ΅μ
μ μ°λ©΄ νμΌλͺ
program
μ μλ΅ν μ μλ€.
λ€μμ μμ£Ό μ°λ λͺ κ°μ§ GDB λͺ λ Ήλ€μ΄λ€.
break [file:]function
- (
file
λ΄μ)function
μ μ€μ§μ μ μ€μ νλ€. run [arglist]
- (
arglist
λ‘) νλ‘κ·Έλ¨μ μμνλ€. bt
- λ°±νΈλ μ΄μ€. νλ‘κ·Έλ¨ μ€νμ νμνλ€.
print expr
- μμ κ°μ νμνλ€.
c
- (μ€μ§μ λ±μμ λ©μΆ μνμμ) νλ‘κ·Έλ¨ μ€νμ κ³μνλ€.
next
- (λ©μΆ μνμμ) νλ‘κ·Έλ¨ λ€μ νμ μ€ννλ€. νμ ν¨μ νΈμΆμ΄ μμΌλ©΄ μ€ννκ³ μ§λκ°λ€.
edit [file:]function
- νμ¬ λ©μΆ° μλ νλ‘κ·Έλ¨ νμ νΈμ§κΈ°λ‘ λ³Έλ€.
list [file:]function
- νμ¬ λ©μΆ° μλ κ³³ λΆκ·Όμ νλ‘κ·Έλ¨ ν μ€νΈλ₯Ό νμνλ€.
step
- (λ©μΆ μνμμ) νλ‘κ·Έλ¨ λ€μ νμ μ€ννλ€. νμ ν¨μ νΈμΆμ΄ μμΌλ©΄ μμΌλ‘ λ€μ΄κ°λ€.
help [name]
- GDB λͺ
λ Ή
name
μ λν μ 보λ GDB μ¬μ©μ λν μΌλ°μ μ 보λ₯Ό νμνλ€. quit
- GDBμμ λκ°λ€.
GDBμ λν μμΈν λ΄μ©μ Richard M. Stallmanκ³Ό Roland H. Peschμ Using GDB: A Guide to the GNU Source-Level Debuggerλ₯Ό 보λΌ. "info" νλ‘κ·Έλ¨μμ "gdb" νλͺ©μΌλ‘ κ°μ λ΄μ©μ λ³Ό μ μλ€.
μ΅μ
μ΄ μλ μΈμκ° μμΌλ©΄ μ€ν νμΌκ³Ό μ½μ΄ νμΌμ (λλ νλ‘μΈμ€IDλ₯Ό) μ§μ νκ² λλ€. μ¦ μ°κ΄λ μ΅μ
νλκ·Έ μλ 첫 λ²μ§Έ μΈμλ -se
μ΅μ
κ³Ό κ°μΌλ©° λ λ²μ§Έκ° μκ³ νμΌ μ΄λ¦μ΄λ©΄ -c
μ΅μ
κ³Ό κ°λ€. μ¬λ¬ μ΅μ
λ€μλ κΈ΄ ννμ μ§§μ ννκ° μλ€. κΈ΄ ννλ λ€λ₯Έ μ΅μ
κ³Ό ꡬλΆμ΄ κ°λ₯νκΈ°λ§ νλ€λ©΄ μΌλΆλ§ μ
λ ₯νλλΌλ μΈμνλ€. (μνλ€λ©΄ μ΅μ
μΈμμ - λμ +λ₯Ό λΆμΌ μλ μμ§λ§ μλμμ μΌλ°μ κ΄νμ λ°λ₯Έλ€.)
λͺ¨λ μ΅μ
κ³Ό λͺ
λ Ήν μΈμλ€μ μμ°¨μ μΌλ‘ μ²λ¦¬λλ€. -x
μ΅μ
μ¬μ© μ μμμ λ°λΌ μ°¨μ΄κ° μκΈ΄λ€.
-
-help
-h
- λͺ¨λ μ΅μ λ€μ κ°λ¨ν μ€λͺ κ³Ό ν¨κ» λμ΄νλ€.
-
-symbols=file
-s file
- νμΌ
file
μμ μ¬λ³Ό ν μ΄λΈμ μ½μ΄ λ€μΈλ€. -write
- μ€ν νμΌκ³Ό μ½μ΄ νμΌλ‘ μ°κΈ°λ₯Ό ν μ μκ² νλ€.
-
-exec=file
-e file
- νμΌ
file
μ μ€ν νμΌλ‘ μ¬μ©ν΄μ μ μ ν λμ μ€ννκ³ μ½μ΄ λ€νμ μ‘°ν©ν΄μ μ΄κΈ° λ°μ΄ν°λ₯Ό μμλ΄λ λ° μ΄λ€. -se=file
- νμΌ
file
μμ μ¬λ³Ό ν μ΄λΈμ μ½μ΄ λ€μ΄κ³ μ€ν νμΌλ‘ μ¬μ©νλ€. -
-core=file
-c file
- νμΌ
file
μ μ½μ΄ λ€νλ‘ μ¬μ©ν΄μ μ‘°μ¬νλ€. -
-command=file
-x file
- νμΌ
file
μ μλ GDB λͺ λ Ήλ€μ μ€ννλ€. -ex command
- μ£Όμ΄μ§ GDB λͺ
λ Ή
command
λ₯Ό μ€ννλ€. -
-directory=directory
-d directory
- μμ€ νμΌ νμ κ²½λ‘μ
directory
λ₯Ό μΆκ°νλ€. -nh
-
~/.gdbinit
μ λͺ λ Ήμ μ€ννμ§ μλλ€. -
-nx
-n
- μ΄κΈ°ν νμΌ
.gdbinit
μ λͺ λ Ήμ μ€ννμ§ μλλ€. -
-quiet
-q
- μ‘°μ©ν νλ€. μκ° λ° μ μκΆ λ©μμ§λ₯Ό μ°μ§ μλλ€. λ°°μΉ λͺ¨λμμλ μ΄ λ©μμ§λ€μ μ¨κΈ΄λ€.
-batch
-
λ°°μΉ λͺ¨λλ‘ μ€ννλ€.
-x
λ‘ μ§μ ν λͺ λ Ή νμΌλ€ λͺ¨λλ₯Ό (κ·Έλ¦¬κ³ κΈμ§νμ§ μμλ€λ©΄.gdbinit
μ) μ²λ¦¬ν νμ μν 0μΌλ‘ λλΈλ€. λͺ λ Ή νμΌ λ΄μ GDB λͺ λ Ήμ μ€ννλ€κ° μ€λ₯κ° λ°μνλ©΄ 0 μλ μν κ°μΌλ‘ λλΈλ€.GDBλ₯Ό νν°λ‘ μ€νν λ, μλ₯Ό λ€μ΄ λ€λ₯Έ μ»΄ν¨ν°μ νλ‘κ·Έλ¨μ λ΄λ €λ°μμ λ릴 λ λ°°μΉ λͺ¨λκ° μ μ©ν μ μλ€. λ νΈλ¦¬νλλ‘ λ°°μΉ λͺ¨λλ‘ λ λλ λ€μ λ©μμ§λ₯Ό μ°μ§ μλλ€. (λ³΄ν΅ λλ GDB μ μ΄ νμμ λλ νλ‘κ·Έλ¨μ΄ μ’ λ£ν λλ§λ€ μ°λλ€.)
Program exited normally.
-cd=directory
- νμ¬ λλ ν°λ¦¬ λμ
directory
λ₯Ό μμ λλ ν°λ¦¬λ‘ ν΄μ GDBλ₯Ό μ€ννλ€. -
-fullname
-f
- Emacsμμ GDBλ₯Ό νμ νλ‘μΈμ€λ‘ μ€νν λ μ΄ μ΅μ μ μ€μ νλ€. GDBμμ μ€ν νλ μμ νμν λ(νλ‘κ·Έλ¨μ΄ λ©μΆ λ ν¬ν¨)λ§λ€ μ 체 νμΌλͺ κ³Ό ν λ²νΈλ₯Ό νμ€μ μ΄κ³ μΈμ κ°λ₯ν λ°©μμΌλ‘ μΆλ ₯νλλ‘ νλ€. κ·Έ μΈμ κ°λ₯ν νμμ΄λ `\032` λ¬Έμ λ κ° λ€μμ νμΌ μ΄λ¦μ΄ μ€κ³ , μ½λ‘ μΌλ‘ ꡬλΆλ ν λ²νΈμ λ¬Έμ μμΉκ° μ€κ³ , κ°νμ΄ μ€λ κ²μ΄λ€. Emacsμμ GDBλ‘μ μΈν°νμ΄μ€ νλ‘κ·Έλ¨μμλ `\032` λ¬Έμ λ κ°λ₯Ό νλ μ μμ€ μ½λλ₯Ό νμνλΌλ μ νΈλ‘ μ΄λ€.
-b bps
- GDBμμ μ격 λλ²κΉ μ μ°λ μλ¦¬μΌ μΈν°νμ΄μ€μ νμ μλ(보λ μλ, μ¦ μ΄λΉ λΉνΈ)λ₯Ό μ€μ νλ€.
-tty=device
- μ₯μΉ
device
λ₯Ό νλ‘κ·Έλ¨μ νμ€ μ μΆλ ₯μΌλ‘ μ¬μ©ν΄μ μ€ννλ€.
μμ ν GDB λ¬Έμλ Texinfo μ€λͺ μ ννλ‘ μ μ§νλ€. "info"μ "gdb" νλ‘κ·Έλ¨, κ·Έλ¦¬κ³ GDBμ Texinfo λ¬Έμκ° μ¬λ°λ‘ μ€μΉλΌ μλ€λ©΄ λ€μ λͺ λ ΉμΌλ‘ μμ ν μ€λͺ μλ₯Ό λ³Ό μ μλ€.
info gdb
Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman and Roland H. Pesch, 1991λ 7μ.
Copyright (c) 1988-2018 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "Free Software" and "Free Software Needs Free Documentation", with the Front-Cover Texts being "A GNU Manual," and with the Back-Cover Texts as in (a) below.
(a) The FSF's Back-Cover Text is: "You are free to copy and modify this GNU Manual. Buying copies from GNU Press supports the FSF in developing GNU and promoting software freedom."
2018-04-09