GDB¸¦ ÀÌ¿ëÇÑ µð¹ö±ë

GNU ¼Ò½º-·¹º§ µð¹ö°Å

Fifth Edition, for GDB version

April 1998

Richard M. Stallman and Roland H. Pesch
Ãʹú ¹ø¿ª : Á¤°­ÈÆ


Â÷·Ê


Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.

Published by the Free Software Foundation
59 Temple Place - Suite 330,
Boston, MA 02111-1307 USA
Printed copies are available for $20 each.
ISBN 1-882114-11-6
Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions.

GDB °³¿ä

GDB°°Àº µð¹ö°ÅÀÇ ¸ñÀûÀº ÇÁ·Î±×·¥ ½ÇÇൿ¾È ÇÁ·Î±×·¥ ³»ºÎ¿¡¼­ ÁøÇàµÇ°í ÀÖ´Â °ÍÀÌ ¹«¾ùÀÎÁö¸¦ ¿©·¯ºÐÀÌ ¾Ëµµ·Ï Çϴµ¥¿¡ ÀÖ´Ù. -- ¶Ç´Â ´Ù¸¥ ÇÁ·Î±×·¥ÀÌ Á×´Â ¼ø°£¿¡ ¹«¾ùÀ» Çß´ÂÁö.

GDB´Â ¿©·¯ºÐÀÌ ¹ö±×¸¦ Àâµµ·Ï µµ¿ÍÁÖ´Â 4 Á¾·ùÀÇ Àϵé(¶Ç À̰͵éÀ» Áö¿øÇÏ´Â ´Ù¸¥ °Íµé)À» ÇÒ¼ö ÀÖ´Ù.

¿©·¯ºÐÀº C³ª C++·Î ¾²¿©Áø ÇÁ·Î±×·¥À» µð¹ö±ëÇϱâ À§ÇØ GDB¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ­, C ±×¸®°í C++ ¼½¼ÇÀ» ÂüÁ¶Çضó.

Modula-2 ¿Í Chill´Â ºÎºÐÀûÀ¸·Î Áö¿øÇÑ´Ù. Modula-2¿¡ °üÇÑ Á¤º¸¸¦ À§Çؼ­, Modula-2 ¼½¼ÇÀ» ÂüÁ¶Çضó. Chill¿¡ °üÇÑ ¹®¼­´Â ¾ÆÁ÷ ¾ø´Ù.

sets, subranges, ÆÄÀÏ º¯¼öµé ¶Ç´Â ÁßøµÈ ÇÔ¼öµéÀ» »ç¿ëÇÏ´Â Pascal ÇÁ·Î±×·¥¿¡ ´ëÇÑ µð¹ö±ëÀº ÇöÀç ÀÛµ¿µÇÁö ¾Ê´Â´Ù. GDB´Â Ç¥Çö½Ä µé¾î°¡±â, °ª Ãâ·Â, ¶Ç´Â Pascal ¹®¹ýÀ» »ç¿ëÇÏ´Â ºñ½ÁÇÑ Æ¯Â¡µéÀº Áö¿øÇÏÁö ¾Ê´Â´Ù.

ºñ·Ï Ç¥Çö½Ä µé¾î°¡±â, °ª Ãâ·Â, ¶Ç´Â Fortran ¹®¹ý¿¡¼­ »ç¿ëÇÏ´Â ºñ½ÁÇÑ Æ¯Â¡µéÀ» ¾ÆÁ÷ Áö¿øÇÏÁö ¾Ê¾Æµµ GDB´Â FortranÀ¸·Î Â¥¿©Áø ÇÁ·Î±×·¥À» µð¹ö±ëÇϱâ À§ÇØ »ç¿ë µÉ¼ö ÀÖ´Ù. Áß¿ä ºÎºÐÀ» ÃßÀûÇϱâ À§ÇØ ¸î¸î º¯¼ö¸¦ ÂüÁ¶Çϴ°ÍÀÌ ÇÊ¿äÇÏ´Ù.

ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î

GDB´Â GNU General Public License(GPL)¿¡ ÀÇÇØ º¸È£µÇ´Â ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾î ÀÌ´Ù. GPLÀº ¶óÀ̼¾½ºµÈ ÇÁ·Î±×·¥À» º¹»çÇϰųª »ç¿ëÇϴ°ÍÀÌ ÀÚÀ¯½º·´´Ù. -- ±×·¯³ª º¹»çº»À» °¡Áø ¸ðµç »ç¶÷Àº ¶ÇÇÑ ±× º¹»çº»(¼Ò½º Äڵ忡 Á¢±ÙÇÒ¼ö ÀÖ´Ù´Â ÀǹÌ)À» ¼öÁ¤Çϱâ À§ÇÑ ÀÚÀ¯¸¦ °¡Áö¸ç ±× º¹»çº»À» ¹èÆ÷Çϴ°͵µ ÀÚÀ¯ÀÌ´Ù. ÀüÇüÀûÀÎ ¼ÒÇÁÆ®¿þ¾î ȸ»çµéÀº ¿©·¯ºÐÀÇ ÀÚÀ¯¸¦ Á¦ÇÑÇϱâ À§ÇØ ÀúÀÛ±ÇÀ» »ç¿ëÇÑ´Ù; Free Software FoundationÀº À̵é ÀÚÀ¯¸¦ º¸È£Çϱâ À§ÇØ GPLÀ» »ç¿ëÇÑ´Ù.

±âº»ÀûÀ¸·Î, General Public License´Â ¿©·¯ºÐÀÌ ÀÌ·¯ÇÑ ÀÚÀ¯¸¦ °¡Áø´Ù´Â ¶óÀ̼¾½ºÀÌ°í ¿©·¯ºÐÀº ÀÌ·¯ÇÑ ÀÚÀ¯¸¦ ±×¹ÛÀÇ ´Ù¸¥ »ç¶÷¿¡°Ô¼­ Á¦ÇÑÇÒ¼ö ¾ø´Ù.

GDB °øÇåÀÚµé

Richard StallmanÀº GDBÀÇ ¿ø ÀúÀÚÀÌ¸ç ´Ù¸¥ ¸¹Àº GDBÇÁ·Î±×·¥ÀÇ ÀúÀÚÀ̱⵵ ÇÏ´Ù. ¸¹Àº ´Ù¸¥ »ç¶÷µéÀÌ ÀÌ °³¹ß¿¡ °øÇåÇÏ¿´´Ù. ÀÌ ¼½¼ÇÀº ÁÖ¿ä °øÇåÀÚµéÀ» ¹àÈ÷±â À§ÇÑ °ÍÀÌ´Ù. ÀÚÀ¯ ¼ÒÇÁÆ®¿þ¾îÀÇ ¹Ì´öÁß Çϳª´Â ¸ðµç »ç¶÷µéÀÌ ÇÁ·Î±×·¥¿¡ °øÇåÇϴ°ÍÀÌ ÀÚÀ¯¶ó´Â Á¡ÀÌ´Ù; À¯°¨½º·´°Ô, ¿ì¸®´Â ¿©±â¼­ ¸ðµç»ç¶÷µéÀ» ¾Ë¸±¼ö ¾ø´Ù. GDB ¹èÆ÷ÆÇ¿¡ ÀÖ´Â `ChangeLog'´Â »ç°Çµé¿¡ ´ëÇØ ´ëü·Î Á¤È®È÷ ±â¼úÇϰí ÀÖ´Ù.

¹öÀü 2.0 ÀÌÀüÀÇ ¸¹Àº º¯È­µéÀº ¿À·£ ½Ã°£¶§¹®¿¡ ÀÒ¾î¹ö·È´Ù.

º¯¸í: ÀÌ ¼½¼Ç¿¡ Ãß°¡ Çϴ°ÍÀº ºÎºÐÀûÀ¸·Î ȯ¿µÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀ̳ª ¿©·¯ºÐÀÇ Ä£±¸µé(¶Ç´Â Àû)ÀÌ ÀÌ ¸®½ºÆ®¿¡¼­ ºüÁ®ÀÖ´Ù¸é ¿ì¸®´Â ¿©·¯ºÐÀÇ À̸§À» Ãß°¡ÇÏ±æ ¿øÇÑ´Ù.

À̵éÀº º¸´äÀÌ ¾ø´Â ¿À·£ ÀÛ¾÷À» ÇÏ¿´À¸¸ç, ¿ì¸®´Â ÁÖ¿ä ¸±¸®Áî ¹öÀü½Ã¿¡ GDB¸¦ µµ¿ÍÁØ À̵鿡°Ô °¨»çÇÑ´Ù.: Stan Shebs (release 4.14), Fred Fish (releases 4.13, 4.12, 4.11, 4.10, and 4.9), Stu Grossman and John Gilmore (releases 4.8, 4.7, 4.6, 4.5, and 4.4), John Gilmore (releases 4.3, 4.2, 4.1, 4.0, and 3.9); Jim Kingdon (releases 3.5, 3.4, and 3.3); and Randy Smith (releases 3.2, 3.1, and 3.0). ¾ó¸¶°£ÀÇ ±â°£µ¿¾È GDBÀÇ ÁÖ¿ä ¸ÞÀÎÅ×À̳ʷνá, °¢ °øÇåÀÚµéÀº ±¸Á¶¿Í ¾ÈÁ¤¼º ±×¸®°í Àüü µð¹ö°ÅÀÇ ´É·Â¿¡ ´ëÇØ °øÇåÇß´Ù.

Peter TerMaat, Chris Hanson, ±×¸®°í Richard Mlynarik °¡ ¿©·¯¹ø µµ¿ÍÁÖ¾úÀ¸¸ç Richard StallmanÀº 2.8±îÁö ¹öÀüÀ» °ü¸®Çß´Ù.

Michael TiemannÀº Áß¿äÇÑ °øÇåÀÚÀÎ Per Bothner¿Í ÇÔ²² GDB¿¡¼­ GNU C++Áö¿øÀÇ ´ëºÎºÐÀÇ ÀúÀÚÀÌ´Ù. James Clark´Â C++ µð¸Í±Û·¯(demangler)¸¦ ½è´Ù. Ãʱâ C++ ÀÛµ¿Àº Peter TerMatt(3.0 ¸±¸®Áî½Ã ¸¹Àº ÀϹÝÀûÀÎ ¾÷µ¥ÀÌÆ® ÀÛ¾÷À» ÇÏ¿´´Ù.)¿¡ ÀÇÇØ¼­ÀÌ´Ù.

GDB 4´Â ´ÙÁß °´Ã¼-ÆÄÀÏ Æ÷¸ËÀ» °Ë»çÇϱâ À§ÇØ BFD ¼­ºê·çƾ ¶óÀ̺귯¸®¸¦ »ç¿ëÇÏ¿´´Ù; BFD´Â David V.Henkel-Wallace, Rich Pixley, Steve Chamberlain, ±×¸®°í John GilmoreÀÇ °øµ¿ ÇÁ·ÎÁ§Æ®ÀÌ´Ù.

David JohnsonÀº ¿ø COFF Áö¿øÀ» ½è´Ù; Pace WillsonÀº ĸ½¶È­µÈ COFF¸¦ Áö¿øÇß´Ù.

Harris Computer SystemsÀÇ Brent BensonÀº DWARF2 Áö¿øÀÇ °øÇåÀÚÀÌ´Ù.

Adam de Boor¿Í Bradley Davis´Â ISI Optimum V Áö¿ø¿¡ °øÇåÇß´Ù. Per Bothner, Noboyuki Hikichi, ±×¸®°í Alessandro Forin´Â MIPS Áö¿ø¿¡ °øÇåÇß´Ù. Jean-Daniel Fekete´Â Sun 386i Áö¿ø¿¡ °øÇåÇß´Ù. Chris Hanson ´Â HP9000 Áö¿øÀ» °³¼±Çß´Ù. Noboyuki Hikichi ±×¸®°í Tomoyuki Hasei´Â Sony/News OS 3 Áö¿ø¿¡ °øÇåÇß´Ù. David Johnson´Â Encore Umax Áö¿ø¿¡ °øÇåÇß´Ù. Jyrki Kuoppala´Â Altos 3068 Áö¿ø¿¡ °øÇåÇß´Ù. Jeff Law´Â HP PA ±×¸®°í SOM Áö¿ø¿¡ °øÇåÇß´Ù. Keith Packard´Â NS32K Áö¿ø¿¡ °øÇåÇß´Ù. Doug Rabson´Â Acorn Risc Machine Áö¿ø¿¡ °øÇåÇß´Ù. Bob Rusk´Â Harris Nighthawk CX-UX Áö¿ø¿¡ °øÇåÇß´Ù. Chris Smith´Â Convex Áö¿ø(±×¸®°í Æ÷Æ®¶õ µð¹ö±ë)¿¡ °øÇåÇß´Ù. Jonathan Stone´Â Pyramid Áö¿ø¿¡ °øÇåÇß´Ù. Michael Tiemann´Â SPARC Áö¿ø¿¡ °øÇåÇß´Ù. Tim Tucker´Â Gould NP1¿Í Gould Powernode Áö¿ø¿¡ °øÇåÇß´Ù. Pace Willison´Â Intel 386 Áö¿ø¿¡ °øÇåÇß´Ù. Jay Vosburgh´Â Symmetry Áö¿ø¿¡ °øÇåÇß´Ù.

Rich Schaefer ±×¸®°í Peter Schauer´Â SunOS °øÀ¯ ¶óÀ̺귯¸® Áö¿øÀ» µµ¿ÍÁÖ¾ú´Ù.

Jay Fenlason ±×¸®°í Roland McGrath´Â GDB¿Í GAS°¡ ¸î¸î ¸Ó½Å ¸í·É¾î ÁýÇÕ¿¡ ÀÏÄ¡Çϵµ·Ï È®½ÇÈ÷ ÇØÁÖ¾ú´Ù.

Patrick Duval, Ted Goldstein, Vikram Koka ±×¸®°í Glenn Engel´Â ¿ø°Ý µð¹ö±ë °³¹ßÀ» µµ¿Í ÁÖ¾ú´Ù. Intel Corporation, Wind River Systems, AMD, ±×¸®°í ARM´Â °¢°¢ i960, VxWorks, A29K UDI, ±×¸®°í RDI targets¸¦ À§ÇÑ ¿ø°Ý µð¹ö±ë ¸ðµâ¿¡ °øÇåÇß´Ù.

Brian Fox´Â ¸í·É¾î ¶óÀÎ ÆíÁý°ú ¸í·É¾î È÷½ºÅ丮¸¦ Á¦°øÇÏ´Â readline ¶óÀ̺귯¸®ÀÇ ÀúÀÚÀÌ´Ù.

SUNY BuffaloÀÇ Andrew Beers´Â ¾ð¾î-switch ÄÚµå, Modula-2 Áö¿ø ±×¸®°í ÀÌ ¸Å´º¾óÀÇ Language chapter¿¡ °øÇåÇß´Ù.

Fred Fish´Â Unix System Vr4 Áö¿øÀÇ ´ëºÎºÐÀ» ÀÛ¾÷Çß´Ù. ±â¸®°í C++ ¿À¹ö·Îµù ½Éº¼À» Áö¿øÇϱâ À§ÇØ ¸í·É¾î-¿Ï¼º¿¡ ´ëÇÑ Áö¿øÀ» °­È­Çß´Ù.

Hitachi America, Ltd. Hitachi microprocessors¸¦ Áö¿øÇϵµ·Ï ÈÄ¿øÇß´Ù.

Kung Hsu, Jeff Law, ±×¸®°í Rick Sladkey´Â Çϵå¿þ¾î watchpoints¿¡ ´ëÇÑ Áö¿øÀ» Ãß°¡Çß´Ù.

Michael Snyder´Â tracepoint Áö¿øÀ» Ãß°¡Çß´Ù.

Stu Grossman´Â gdbserver¸¦ ½è´Ù.

Jim Kingdon, Peter Schauer, Ian Taylor, ±×¸®°í Stu Grossman´Â ¸¹Àº ¹ö±×¸¦ °íÃÆÀ¸¸ç GDB¸¦ ±ò²ûÇÏ°Ô ÇØÁÖ¾ú´Ù.

Cygnus SolutionsÀº 1991³â ÀÌÈÄ GDB À¯Áö¿Í °³¹ßÀÇ ¸¹Àº°ÍÀ» Áö¿øÇß´Ù.

°£´ÜÇÑ GDB ¼¼¼Ç

¿©·¯ºÐÀº GDB¿¡ °üÇÑ °ÍÀ» Àбâ À§ÇØ ¿©°¡½Ã°£¿¡ ÀÌ ¸Å´º¾óÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×·¯³ª, ¾à°£ÀÇ ¸í·É¾îµé·Î¸¸À¸·Îµµ µð¹ö°Å »ç¿ëÀ» ½ÃÀÛÇϴµ¥ ÃæºÐÇÏ´Ù. ÀÌ ÀåÀº ÀÌµé ¸í·É¾îµé¿¡ ´ëÇØ ±â¼úÇÑ´Ù.

ÀÌ ¿¹Á¦ ¼¼¼Ç¿¡¼­, ¿ì¸®´Â ÁÖÀ§ Ãâ·Â°ú ½±°Ô ±¸º°Çϱâ À§ÇØ ´ÙÀ½Ã³·³ »ç¿ëÀÚ ÀÔ·ÂÀ» °­Á¶ÇÑ´Ù:input,

GNU m4(ÀÏ¹Ý ¸ÅÅ©·Î ÇÁ·Î¼¼¼­)ÀÇ Ãʱ⠹öÀüÁß Çϳª´Â ´ÙÀ½°ú °°Àº ¹ö±×¸¦ °¡Áö°í ÀÖ´Ù: °¡²û ¿ì¸®°¡ µðÆúÆ®¿¡¼­ ÀÎ¿ë ¹®ÀÚ¿­À» ¹Ù²Ü¶§, ÀÌ ¸í·É¾îµéÀº ´Ù¸¥ stop ÀÛ¾÷³»¿¡ ÀÖ´Â ÇϳªÀÇ ¸ÅÅ©·Î Á¤ÀǸ¦ ĸÃÄÇϱâ À§ÇØ »ç¿ëµÉ¼ö ÀÖ´Ù. ´ÙÀ½ÀÇ °£´ÜÇÑ m4 ¼¼¼Ç¿¡¼­, ¿ì¸®´Â 0000·Î È®ÀåµÇ´Â ¸ÅÅ©·Î foo¸¦ Á¤ÀÇÇÑ´Ù; ±×¸®°í °°Àº°ÍÀ¸·Î bar¸¦ Á¤ÀÇ Çϱâ À§ÇØ m4 ³»Àå defn¸¦ »ç¿ëÇÑ´Ù. ±×·¯³ª, ¿ì¸®°¡ <QUOTE>·Î ¿­¸° ÀÎ¿ë ¹®ÀÚ¿­°ú <UNQUOTE>·Î ´ÝÈù Àο빮ÀÚ¿­À» ¹Ù²Û´Ù¸é, °°Àº ÀýÂ÷´Â »õ·Î¿î µ¿ÀǾî baz¸¦ Á¤ÀÇÇϴµ¥ ½ÇÆÐÇÑ´Ù.

$ cd gnu/m4
$ ./m4
define(foo,0000)

foo
0000
define(bar,defn(`foo'))

bar
0000
changequote(<QUOTE>,<UNQUOTE>)

define(baz,defn(<QUOTE>foo<UNQUOTE>))
baz
C-d
m4: End of input: 0: fatal error: EOF in string

¹«¾ùÀÌ ÀϾ°í ÀÖ´ÂÁö ¾Ë¾Æº¸±â À§ÇØ GDB¸¦ »ç¿ëÇØº¸ÀÚ.

$ gdb m4
GDB is free software and you are welcome to distribute copies
 of it under certain conditions; type "show copying" to see 
 the conditions.
There is absolutely no warranty for GDB; type "show warranty" 
 for details.

GDB , Copyright 1995 Free Software Foundation, Inc...
(gdb)

GDB´Â ¹ß°ßÇϱâ À§ÇÑ °÷ÀÌ ¾îµðÀÎÁö ¾Ë±â À§ÇØ ÇÊ¿äÇÑ ½Éº¼ µ¥ÀÌÅÍ ¸¸À» Àд´Ù.; °á°úÀûÀ¸·Î, óÀ½ ÇÁ·ÒÇÁÆ®´Â ¸Å¿ì »¡¸® ³ªÅ¸³­´Ù. ¿ì¸®´Â Áö±Ý º¸Å뺸´Ù Á¼Àº µð½ºÇ÷¹ÀÌ ÆøÀ» »ç¿ëÇϵµ·Ï GDB¿¡°Ô ¸»ÇÑ´Ù. ±×·¡¼­ ÀÌ ¿¹Á¦´Â ÀÌ ¸Å´º¾ó¿¡ Àû¿ë½ÃÄ×´Ù.

(gdb) set width 70

¿ì¸®´Â m4 ³»Àå changequote°¡ ÀÛµ¿ÇÏ´Â ¹æ¹ýÀ» ¾Ë Çʿ䰡 ÀÖ´Ù. ¼Ò½º¸¦ º¸°í, ¿ì¸®´Â °ü·Ã ¼­ºê·çƾÀÌ m4_changequoteÀ̶ó°í ¾Ë°í ÀÖÀ¸¹Ç·Î, GDB break ¸í·É¾î·Î breakpoint¸¦ ¼³Á¤ÇÑ´Ù.

(gdb) break m4_changequote
Breakpoint 1 at 0x62f4: file builtin.c, line 879.

run¸í·É¾î¸¦ »ç¿ëÇÏ¿©, GDB Á¦¾îÇÏ¿¡ m4¸¦ ½ÃÀÛÇÑ´Ù; Á¦¾î°¡ m4_changequote¿¡ µµÂøÇÏÁö ¾Ê´ÂÇÑ, ÇÁ·Î±×·¥Àº º¸Åëó·³ ÀÛµ¿ÇÑ´Ù.

(gdb) run
Starting program: /work/Editorial/gdb/gnu/m4/m4
define(foo,0000)

foo
0000

breakpoint¸¦ Æ®¸®°ÅÇϱâ À§ÇØ, changequote¸¦ È£ÃâÇÑ´Ù. GDB´Â m4ÀÇ ½ÇÇàÀ» ÀϽà ÁßÁöÇÏ°í ¸ØÃá °÷ÀÇ ¹®¸Æ¿¡ °üÇÑ Á¤º¸¸¦ Ãâ·ÂÇÑ´Ù.

changequote(<QUOTE>,<UNQUOTE>)

Breakpoint 1, m4_changequote (argc=3, argv=0x33c70) 
    at builtin.c:879
879         if (bad_argc(TOKEN_DATA_TEXT(argv[0]),argc,1,3))

Áö±Ý ÇöÀç ÇÔ¼öÀÇ ´ÙÀ½ ¶óÀÎÀ¸·Î ½ÇÇàÀ» ³ª¾Æ°¡±â À§ÇØ n(next)¸í·É¾î¸¦ »ç¿ëÇÑ´Ù.

(gdb) n
882         set_quotes((argc >= 2) ? TOKEN_DATA_TEXT(argv[1])\
 : nil,

set_quotes´Â ¾à¼ÓµÈ ¼­ºê·çƾó·³ º¸ÀδÙ. ¿ì¸®´Â next ´ë½Å¿¡ s (step) ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÇØ´ç ¼­ºê·çƾÀ¸·Î µé¾î°£´Ù. step´Â any ¼­ºê·çƾ¿¡¼­ ½ÇÇàµÇ±â À§ÇØ ´ÙÀ½ ¶óÀÎÀ¸·Î µé¾î °£´Ù. ±×·¡¼­ set_quotes ¾ÈÀ¸·Î µé¾î°£´Ù.

(gdb) s
set_quotes (lq=0x34c78 "<QUOTE>", rq=0x34c88 "<UNQUOTE>")
    at input.c:530
530         if (lquote != def_lquote)

ÇöÀç m4°¡ ÀϽà ÁßÁöµÈ ¼­ºê·çƾÀ» º¸¿©ÁÖ´Â Ãâ·ÂÀ» ½ºÅà ÇÁ·¹ÀÓ µð½º Ç÷¹À̶ó ºÎ¸¥´Ù. À̰ÍÀº ½ºÅÃÀÇ °³¿ä¸¦ º¸¿©ÁØ´Ù. ¿ì¸®´Â ´ëü·Î ½ºÅÿ¡ Àִ°÷À» º¸±â À§ÇØ backtrace(öÀÚ´Â bt)¸¦ »ç¿ëÇÑ´Ù: backtrace¸í·É¾î´Â ÇöÀç Ȱ¼ºÈ­µÈ ¼­ºê·çƾÀ» À§ÇØ ½ºÅà ÇÁ·¹ÀÓÀ» Ãâ·ÂÇÑ´Ù.

(gdb) bt
#0  set_quotes (lq=0x34c78 "<QUOTE>", rq=0x34c88 "<UNQUOTE>")
    at input.c:530
#1  0x6344 in m4_changequote (argc=3, argv=0x33c70) 
    at builtin.c:882
#2  0x8174 in expand_macro (sym=0x33320) at macro.c:242
#3  0x7a88 in expand_token (obs=0x0, t=209696, td=0xf7fffa30)
    at macro.c:71
#4  0x79dc in expand_input () at macro.c:40
#5  0x2930 in main (argc=0, argv=0xf7fffb20) at m4.c:195

¿ì¸®´Â ¹«¾ùÀÌ ÀϾ´ÂÁö¸¦ º¸±â À§ÇØ ¾à°£ ´õ ¸¹Àº ¶óÀÎÀ» ³ª¾Æ°£´Ù. óÀ½ ¸î¹ø, ¿ì¸®´Â `s'¸¦ »ç¿ëÇÑ´Ù; ´ÙÀ½ µÎ¹ø, ¿ì¸®´Â xstrdup ¼­ºê·çƾÀ¸·Î µé¾î°¡´Â°ÍÀ» ÇÇÇϱâ À§ÇØ n¸¦ »ç¿ëÇÑ´Ù.

(gdb) s
0x3b5c  532         if (rquote != def_rquote)
(gdb) s
0x3b80  535         lquote = (lq == nil || *lq == '\0') ?  \
def_lquote : xstrdup(lq);
(gdb) n
536         rquote = (rq == nil || *rq == '\0') ? def_rquote\
 : xstrdup(rq);
(gdb) n
538         len_lquote = strlen(rquote);

¸¶Áö¸· ¶óÀÎÀº ¾à°£ ÀÌ»óÇÏ°Ô º¸ÀδÙ; ¿ì¸®´Â ±×°ÍµéÀÌ ¿ì¸®°¡ ÁöÁ¤ÇÑ ¿ÞÂÊ ±×¸®°í ¿À¸¥ÂÊ Àοë¾î±¸ÀÎÁö ¾Æ´ÑÁö¸¦ º¸±â À§ÇØ lquote ±×¸®°í rquote ¸¦ °Ë»çÇÒ¼ö ÀÖ´Ù. ¿ì¸®´Â º¯¼öµéÀ» º¸±â À§ÇØ p(print) ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù.

(gdb) p lquote
$1 = 0x35d40 "<QUOTE>"
(gdb) p rquote
$2 = 0x35d50 "<UNQUOTE>"

lquote ±×¸®°í rquote´Â ½ÇÁ¦·Î »õ·Î¿î ¿ÞÂÊ, ¿À¸¥ÂÊ Àοë¾î±¸ÀÌ´Ù. ¸î¸î ¹®¸ÆÀ» º¸±â À§ÇØ, ¿ì¸®´Â l(list) ¸í·É¾î¸¦ °¡Áö°í ÇöÀç ¶óÀÎ ÁÖÀ§ ¼Ò½ºÄÚµå 10¶óÀÎÀ» º¼¼ö ÀÖ´Ù.

(gdb) l
533             xfree(rquote);
534
535         lquote = (lq == nil || *lq == '\0') ? def_lquote\
 : xstrdup (lq);
536         rquote = (rq == nil || *rq == '\0') ? def_rquote\
 : xstrdup (rq);
537
538         len_lquote = strlen(rquote);
539         len_rquote = strlen(lquote);
540     }
541
542     void

len_lquote¿Í len_rquote¸¦ ¼³Á¤ÇÏ´Â ¸¶Áö¸· µÎ ¶óÀÎÀ¸·Î °¡¼­ ÀÌµé º¯¼ö°ªÀ» °Ë»çÇÏÀÚ.

(gdb) n
539         len_rquote = strlen(lquote);
(gdb) n
540     }
(gdb) p len_lquote
$3 = 9
(gdb) p len_rquote
$4 = 7

len_lquote¿Í len_rquote°¡ °¢°¢ lquote¿Í rquoteÀÇ ±æÀ̶ó°í °¡Á¤ÇÒ¶§ ±×°ÍÀº È®½ÇÈ÷ ÀÌ»óÇÏ°Ô º¸ÀδÙ. ¿ì¸®´Â p ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ±×°ÍµéÀ» Àû´çÇÑ °ªÀ¸·Î ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé ÀÌ ¸í·É¾î´Â ¾î¶² Ç¥Çö½ÄÀÇ °ªÀ» Ãâ·ÂÇÒ¼ö Àֱ⠶§¹®ÀÌ´Ù. -- ±×¸®°í ±× Ç¥Çö½ÄÀº ¼­ºê·çƾ Äݰú ´ëÀÔÀ» Æ÷ÇÔÇÒ¼ö ÀÖ´Ù.

(gdb) p len_lquote=strlen(lquote)
$5 = 7
(gdb) p len_rquote=strlen(rquote)
$6 = 9

m4 ³»Àå defn·Î »õ·Î¿î Àοë¾î±¸ »ç¿ë ¹®Á¦¸¦ °íÄ¡±â¿¡ ÃæºÐÇѰ¡? ¿ì¸®´Â c(continue)¸í·É¾î·Î ½ÇÇàÀ» °è¼ÓÇϱâ À§ÇØ m4¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×¸®°í ¹®Á¦¸¦ ¾ß±âÇÑ ¿¹Á¦¸¦ ´Ù½Ã ½ÃµµÇÏÀÚ.

(gdb) c
Continuing.

define(baz,defn(<QUOTE>foo<UNQUOTE>))

baz
0000

¼º°ø! »õ·Î¿î Àοë¾î±¸´Â Áö±Ý ±âº»Ã³·³ ÀÛµ¿ÇÑ´Ù. ¹®Á¦´Â À߸øµÈ ±æÀ̸¦ Á¤ÀÇÇÑ µÎ ¿ÀŸ ¶§¹®ÀΰŠ°°´Ù. ¿ì¸®´Â ÀԷ¿¡ EOF¸¦ ÁÖ¾î m4¸¦ Á¾·áÇÒ¼ö ÀÖ´Ù.

C-d
Program exited normally.

¸Þ¼¼Áö `Program exited normally.'´Â GDB¿¡¼­ ³ª¿Â°ÍÀÌ´Ù; ±×°ÍÀº m4°¡ ½ÇÇàÀ» ¸¶Ãƴٴ°ÍÀ» °¡¸®Å²´Ù. ¿ì¸®´Â GDB quit ¸í·É¾î¸¦ °¡Áö°í GDB ¼¼¼ÇÀ» ¸¶Ä¥¼ö ÀÖ´Ù.

(gdb) quit

GDB¿¡ µé¾î°¡°í ³ª°¡±â

ÀÌ ÀåÀº GDB¸¦ ½ÃÀÛÇÏ´Â ¹æ¹ý°ú ³ª°¡´Â ¹æ¹ý¿¡ ´ëÇØ Åä·ÐÇÑ´Ù. ÇʼöÀûÀÎ °Íµé:

GDB ½ÇÇà

ÇÁ·Î±×·¥ gdb¸¦ µ¹·Á GDB¸¦ ½ÇÇàÇØ¶ó. ÀÏ´Ü ½ÃÀÛÇϸé, GDB´Â ¿©·¯ºÐÀÌ Á¾·á(exit)¸¦ ÇÒ¶§±îÁö Å͹̳ο¡¼­ ¸í·É¾î¸¦ Àд´Ù.

¿©·¯ºÐÀº ¶ÇÇÑ ½ÃÀ۽à ¿©·¯ºÐÀÇ µð¹ö±ë ȯ°æÀ» ÁöÁ¤Çϱâ À§ÇØ ÀÎÀÚ¿Í ¿É¼ÇÀ» °¡Áö°í gdb¸¦ µ¹¸±¼ö ÀÖ´Ù.

¿©±â¼­ ±â¼úÇÑ ¸í·É¾î-¶óÀÎ ¿É¼ÇµéÀº ¿©·¯»óȲÀ» ó¸®Çϵµ·Ï °í¿ÏµÇ¾ú´Ù.; ¸î¸î ȯ°æ¿¡¼­, ÀÌµé ¿É¼Ç Áß ÀϺδ ȿ°úÀûÀ¸·Î ÀÌ¿ëÇÒ¼ö ¾ø´Ù.

GDB¸¦ ½ÃÀÛÇϱâ À§ÇÑ °¡Àå ÀϹÝÀûÀÎ ¹æ¹ýÀº ½ÇÇà ÇÁ·Î±×·¥À» ÁöÁ¤ÇÏ´Â ÀÎÀÚ 1°³¸¦ °¡Áö´Â °ÍÀÌ´Ù.

gdb program

¿©·¯ºÐÀº ¶ÇÇÑ ½ÇÇà ÇÁ·Î±×·¥°ú ÄÚ¾î(core) ÆÄÀÏÀ» ÁöÁ¤ÇÏ¿© ½ÃÀÛÇÒ¼ö ÀÖ´Ù:

gdb program core

´ë½Å¿¡ ¿©·¯ºÐÀº µ¹¾Æ°¡´Â ÇÁ·Î±×·¥À» µð¹ö±ëÇÏ±æ ¿øÇÑ´Ù¸é µÎ¹øÂ° ÀÎÀڷνá ÇÁ·Î¼¼½º ID¸¦ ÁöÁ¤Çضó.

gdb program 1234

ÇÁ·Î¼¼½º 1234¿¡ GDB¸¦ ¿¬°áÇÑ´Ù.(¿©·¯ºÐÀÌ `1234'À̶ó´Â À̸§ÀÇ ÆÄÀÏÀ» °¡Áö°í ÀÖÁö ¾Ê´Ù¸é; GDB´Â ¿ì¼± ÄÚ¾îÆÄÀÏ À̸§À» üũÇÑ´Ù.)

µÎ¹øÂ° ¸í·É¾î ¶óÀÎ ¿É¼ÇÀ» ÀÌ¿ëÇϴ°ÍÀº ²Ï ¾ÈÀüÇÑ OS¸¦ ¿ä±¸ÇÑ´Ù.; ¿©·¯ºÐÀÌ bare º¸µå¿¡ ¿¬°áµÈ µð¹ö°Å·Î½á GDB¸¦ »ç¿ëÇÒ¶§, °Å±â¿¡´Â "ÇÁ·Î¼¼½º"¿¡ ´ëÇÑ °³³äÀÌ ¾øÀ» °ÍÀÌ´Ù. ±×¸®°í ÄÚ¾î ´ýÇÁ¸¦ °¡Áö±â À§ÇÑ ¹æ¹ýµµ ¾ø´Ù.

¿©·¯ºÐÀº -silent¸¦ ÁöÁ¤ÇÏ¿© GDBÀÇ ¾ÕºÎºÐÀ» Ãâ·ÂÇÏÁö ¾Ê°í gdb¸¦ µ¹¸±¼ö ÀÖ´Ù.

gdb -silent

¿©·¯ºÐÀº ¸í·É¾î-¶óÀÎ ¿É¼ÇÀ» »ç¿ëÇÏ¿© GDB¸¦ ½ÃÀÛÇÏ´Â ¹æ¹ýÀ» Á¦¾îÇÒ¼ö ÀÖ´Ù. GDB´Â ±×°Í ÀÚü·Î »ç¿ëÇÒ¼ö ÀÖ´Â ¿É¼ÇµéÀ» ¾Ë·ÁÁÙ¼ö ÀÖ´Ù.

ÀÌ¿ëÇÒ¼ö ÀÖ´Â ¸ðµç ¿É¼Çµé°ú »ç¿ë¿¡ ´ëÇØ °£´ÜÇÑ ±â¼úÀ» º¸°íÀÚ Çϸé

gdb -help

¸¦ ŸÀÌÇÎÇØ¶ó.(`gdb -h'¿Í µ¿ÀÏÇÏ´Ù.)

¿©·¯ºÐÀÌ ÁØ ¸ðµç ¿É¼Ç°ú ¸í·É¾î ¶óÀÎ ÀÎÀÚµéÀº ¼øÂ÷ÀûÀ¸·Î 󸮵ȴÙ. `-x' ¿É¼ÇÀ» »ç¿ëÇÏ¸é ¼ø¼­°¡ ´Þ¶óÁø´Ù.

ÆÄÀÏµé ¼±ÅÃÇϱâ

GDB°¡ ½ÃÀÛÇÒ¶§, GDB´Â ½ÇÇàÆÄÀϰú ÄÚ¾î ÆÄÀÏ(¶Ç´Â ÇÁ·Î¼¼½º ID)À» ÁöÁ¤ÇÏ´Â °Íó·³ ¿É¼ÇÀÌ¿ÜÀÇ ´Ù¸¥ ÀÎÀÚµéÀ» Àд´Ù. À̰ÍÀº ÀÎÀÚµéÀ» °¢°¢ `-se'°ú `-c'·Î ÁöÁ¤ÇѰͰú °°´Ù. (GDB´Â `-se'¿É¼Ç ´ÙÀ½¿¡ µû¸£´Â ÀÎÀÚ¿Í °°±â ¶§¹®¿¡ °ü·ÃµÈ ¿É¼Ç Ç÷¡±×¸¦ °¡Áö°í ÀÖÁö ¾Ê´Â ù¹øÀç ÀÎÀÚ¸¦ Àд´Ù; ±×¸®°í `-c' ¿É¼Ç ´ÙÀ½ÀÇ ÀÎÀÚ¿Í °°±â ¶§¹®¿¡ °ü·ÃµÈ ¿É¼Ç Ç÷¡±×¸¦ °¡ÁöÁö ¾Ê´Â µÎ¹øÂ° ÀÎÀÚ¸¦ Àд´Ù.)

¸¹Àº ¿É¼ÇµéÀº long°ú shortÇüŸ¦ °¡Áö°í ÀÖ´Ù; µÎ°³´Â ´ÙÀ½¸®½ºÆ®¿¡¼­ º¸¿©Áø´Ù. GDB´Â ¶ÇÇÑ ¿É¼ÇÀÌ ¸ðÈ£ÇÏÁö ¾Ê´ÂÇÑ ¿©·¯ºÐÀÌ ÁÙ¿©µµ ±äÇüÅ·ΠÀνÄÇÒ¼öµµ ÀÖ´Ù. (¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀº ¿ì¸®°¡ ´õ ÀϹÝÀûÀÎ º¯È¯À» ¼³¸íÇÏ´õ¶óµµ `-'º¸´Ù `--'·Î ¿É¼Ç ÀÎÀÚ¸¦ Ç÷¡±×È­ ÇÒ¼ö ÀÖ´Ù.)

-symbols file
-s file
ÆÄÀÏ file¿¡¼­ ½Éº¼ Å×À̺íÀ» Àд´Ù.
-exec file
-e file
½ÇÇà ÆÄÀÏ·Î½á ±×¸®°í ÄÚ¾î ´ýÇÁ¿Í °áÇÕµÈ ¼ø µ¥ÀÌÅ͸¦ °Ë»çÇϱâ À§ÇØ ÆÄÀÏ file¸¦ »ç¿ëÇØ¶ó.
-se file
ÆÄÀÏ file¿¡¼­ ½Éº¼ Å×À̺íÀ» ÀÐ°í ½ÇÇàÆÄÀϷνá À̰ÍÀ» »ç¿ëÇØ¶ó.
-core file
-c file
°Ë»çÇϱâ À§ÇÑ ÄÚ¾î ´ýÇÁ·Î½á ÆÄÀÏ file¸¦ »ç¿ëÇØ¶ó.
-c number
attach ¸í·É¾îó·³ ÇÁ·Î¼¼½º ID number¸¦ ¿¬°áÇØ¶ó. (¸¸ÀÏ number À̸§ÀÇ ÄÚ¾î-´ýÇÁ Æ÷¸Ë ÆÄÀÏÀÌ ¾ø´Ù¸é, À̰ÍÀº `-c'¿¡¼­ Àбâ À§ÇÑ ÄÚ¾î ´ýÇÁ·Î½á ÆÄÀÏÀ» ÁöÁ¤ÇÑ °æ¿ìó·³)
-command file
-x file
ÆÄÀÏ file¿¡¼­ GDB ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù. ¸í·É¾î ÆÄÀÏµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
-directory directory
-d directory
¼Ò½º ÆÄÀÏÀ» Ž»öÇϱâ À§ÇØ ÆÐ½º¿¡ directory¸¦ Ãß°¡Çضó.
-m
-mapped
°æ°í: OS ±â´É¿¡ ÀÇÁ¸ÇÏ´Â ÀÌ ¿É¼ÇÀº ¸ðµç ½Ã½ºÅÛ¿¡¼­ Áö¿øµÇÁö ¾Ê´Â´Ù.
¸¸ÀÏ ¸Þ¸ð¸®-´ëÀÀ(memory-map)ÆÄÀϵéÀÌ mmap¸¦ ÅëÇØ ½Ã½ºÅÛ¿¡¼­ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù¸é, ¿©·¯ºÐÀº ÇöÀç µð·ºÅ丮¿¡¼­ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥À» ´Ù½Ã Àç»ç¿ëÇÒ¼ö ÀÖ´Â ÆÄÀÏ¿¡ ½Éº¼µéÀ» ¾µ¼ö ÀÖ´Â ¿É¼ÇÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ µð¹ö±ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ `/tmp/fred'¶ó ºÒ¸°´Ù¸é, ´ëÀÀµÈ ½Éº¼ ÆÄÀÏÀº `./fred.syms'ÀÌ´Ù. ¾ÕÀ¸·Î GDB µð¹ö±ë ¼¼¼ÇµéÀº ÀÌ ÆÄÀÏÀÇ Á¸À縦 È®ÀÎÇÏ¸ç ½ÇÇà ÇÁ·Î±×·¥¿¡¼­ ½Éº¼ ÆÄÀÏÀ» Àб⺸´Ù ÀÌ ÆÄÀÏ¿¡¼­ ½Éº¼ Á¤º¸¸¦ ºü¸£°Ô ´ëÀÀ½ÃŲ´Ù. `.syms'ÆÄÀÏÀº GDB°¡ µ¹¾Æ°¡°í Àִ ȣ½ºÆ® ¸Ó½Å¿¡ ÀÇÁ¸ÇÑ´Ù. À̰ÍÀº ³»ºÎ GDB ½Éº¼ Å×À̺íÀÇ Á¤È®ÇÑ À̹ÌÁö¸¦ °¡Áø´Ù. À̰ÍÀº Å©·Î½º ´ÙÁß È£½ºÆ® Ç÷§Æû¿¡¼­ °øÀ¯ µÉ¼ö ¾ø´Ù.
-r
-readnow
ÇÊ¿äÇÒ¶§ Á¶±Ý¾¿ Àд°ͺ¸´Ù Áï½Ã ½Éº¼ ÆÄÀÏÀÇ Àüü ½Éº¼ Å×À̺íÀ» Àд´Ù. À̰ÍÀº ½ÃÀÛÀ» ´À¸®°Ô ¸¸µéÁö¸¸ ¾ÕÀ¸·ÎÀÇ ÀÛµ¿Àº ´õ ºü¸£°Ô ¸¸µç´Ù.

-mapped¿Í -readnow ¿É¼ÇÀº ÀüÇüÀûÀ¸·Î ¿ÏÀüÇÑ ½Éº¼ Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â `.syms' ÆÄÀÏÀ» ¸¸µé±â À§ÇØ °áÇյȴÙ. (Á¤º¸¸¦ À§Çؼ­ ÆÄÀÏÀ» ÁöÁ¤Çϱâ À§ÇÑ ¸í·É¾îµé¸¦ ÂüÁ¶Çضó.)

¾ÕÀ¸·ÎÀÇ »ç¿ëÀ» À§ÇØ ÆÄÀÏ `.syms'´Â:

	gdb -batch -nx -mapped -readnow programname

¸ðµå ¼±ÅÃÇϱâ

¿©·¯ºÐÀº ´Ù¾çÇÑ ¼±Åà ¸ðµå¿¡¼­ GDB¸¦ µ¹¸±¼ö ÀÖ´Ù--¿¹¸¦ µé¾î, ¹èÄ¡¸ðµå³ª Á¶¿ëÇÑ ¸ðµå

-nx
-n
ÃʱâÈ­ ÆÄÀϵé(º¸Åë `.gdbinit'¶ó ºÒ¸°´Ù)¿¡¼­ ¸í·É¾î¸¦ ½ÇÇàÇÏÁö ¸¶¶ó. º¸Åë, ÀÌ ÆÄÀϵ鿡 ÀÖ´Â ¸í·É¾îµéÀº ¸ðµç ¸í·É¾î ¿É¼Ç°ú ÀÎÀÚµéÀÌ Ã³¸®µÈ ´ÙÀ½¿¡ ½ÇÇàµÈ´Ù. ¸í·É¾î ÆÄÀÏµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
-quiet
-q
"ħ¹¬". ¼Ò°³¿Í ÀúÀÛ±Ç ¸Þ¼¼Áö´Â Ãâ·ÂÇÏÁö ¸¶¶ó. ÀÌ ¸Þ¼¼ÁöµéÀº ¹èÄ¡ ¸ðµå¿¡¼­ ÀÛµ¿µÇÁö ¾Ê´Â´Ù.
-batch
¹èÄ¡¸ðµå·Î µ¹·Á¶ó. `-x'(±×¸®°í `-n'·Î ÀúÁöµÇÁö ¾ÊÀº ÃʱâÈ­ ÆÄÀÏ¿¡¼­ ¸ðµç ¸í·É¾îµé)·Î ÁöÁ¤µÈ ¸ðµç ¸í·ÉÆÄÀϵéÀ» ó¸®ÇÑÈÄ 0 »óÅ·ΠÁ¾·áµÈ´Ù. ¸¸ÀÏ ¿¡·¯°¡ ¸í·É¾î ÆÄÀϾȿ¡ ÀÖ´Â GDB¸í·É¾î¸¦ ½ÇÇàÇÏ´Â µ¿¾È ÀϾ´Ù¸é 0ÀÌ ¾Æ´Ñ »óÅ·ΠÁ¾·áµÈ´Ù. ¹èÄ¡ ¸ðµå´Â ´Ù¿î·Îµå³ª ´Ù¸¥ ÄÄÇ»ÅÍ¿¡¼­ ÇÁ·Î±×·¥À» µ¹¸®±â À§ÇÑ ÇÊÅͷνá GDB¸¦ µ¹¸®´Âµ¥ À¯¿ëÇÏ´Ù.; ´õ À¯¿ëÇÏ°Ô ¸¸µé±â À§Çؼ­ ¸Þ¼¼Áö°¡ ¹èÄ¡¸ðµå¿¡¼­ µ¹¾Æ°¥¶§´Â ³ªÅ¸³ªÁö ¾Ê´Â´Ù. (º¸Åë GDBÁ¦¾îÇÏ¿¡¼­ µ¹¾Æ°¡´Â ÇÁ·Î±×·¥ÀÌ ³¡³¯¶§ ³ªÅ¸³­´Ù.)
Program exited normally.
-cd directory
GDB´Â ÇöÀç µð·ºÅ丮 ´ë½Å¿¡ ÀÛ¾÷µð·ºÅ丮·Î½á directory¸¦ »ç¿ëÇÏ¿© ÀÛµ¿ÇÑ´Ù.
-fullname
-f
GNU Emacs´Â ÇÏÀ§ ÇÁ·Î¼¼¼­·Î½á GDB¸¦ µ¹¸±¶§ ÀÌ ¿É¼ÇÀ» ¼³Á¤ÇÑ´Ù. ±×°ÍÀº ½ºÅà ÇÁ·¹ÀÓÀÌ Ãâ·ÂµÉ¶§(ÇÁ·Î±×·¥ÀÌ ¸ØÃá ½Ã°£À» Æ÷ÇÔÇÏ¿©) ÆÄÀÏ À̸§°ú ¶óÀÎ ³Ñ¹ö¸¦ Ãâ·ÂÇϵµ·Ï GDB¿¡°Ô ¸»ÇÑ´Ù. À̰ÍÀº µÎ°³ÀÇ `\032' ¹®ÀÚµé ó·³ º¸ÀÌ´Â Æ÷¸ËÀ» Çã¿ëÇϸç, ÆÄÀÏ À̸§, ¶óÀÎ ³Ñ¹ö, Äݷаú ´º¶óÀο¡ ÀÇÇØ ºÐ¸®µÇ´Â ¹®ÀÚ°¡ µÚµû¶ó¿Â´Ù. Emacs-to-GDB ÀÎÅÍÆäÀ̽º ÇÁ·Î±×·¥Àº ÇÁ·¹¿¥¿¡¼­ ¼Ò½º Äڵ带 º¸¿©ÁÖ±â À§ÇÑ ½ÅÈ£·Î½á µÎ°³ÀÇ `\032' ¹®ÀÚ¸¦ »ç¿ëÇÑ´Ù.
-b bps
¿ø°Ý µð¹ö±ë¿¡¼­ GDB°¡ »ç¿ëÇÑ ½Ã¸®¾ó ÀÎÅÍÆäÀ̽ºÀÇ ¶óÀÎ ½ºÇǵå(baud rate ³ª bits per second)¸¦ ¼³Á¤ÇÑ´Ù.
-tty device
ÇÁ·Î±×·¥ÀÇ Ç¥ÁØ ÀԷ°ú Ãâ·ÁÀ» À§ÇØ device¸¦ »ç¿ëÇÏ¿© ÀÛµ¿ÇÑ´Ù.

GDB Á¾·áÇϱâ

quit
GDB¸¦ Á¾·áÇϱâ À§ÇØ, quit(°£´ÜÈ÷ q)¸¦ »ç¿ëÇØ¶ó. ¶Ç´Â EOF ¹®ÀÚ(º¸Åë C-d)¸¦ ŸÀÌÇÎÇØ¶ó. ¸¸ÀÏ ¿©·¯ºÐÀÌ expression¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù¸é, GDB´Â Á¤»óÀûÀ¸·Î Á¾·áµÉ °ÍÀÌ´Ù; ±×·¸Áö ¾ÊÀ¸¸é ¿¡·¯ ÄÚµå·Î½á expressionÀÇ °á°ú¸¦ »ç¿ëÇϰí Á¾·áÇÒ °ÍÀÌ´Ù.

ÀÎÅÍ·´Æ®(ÀÚÁÖ C-c)´Â GDB¿¡¼­ ³ª°¡Áö ¾ÊÁö¸¸ ó¸®ÁßÀÎ GDB¸í·É ÀÛµ¿À» ³¡³»¸ç GDB ¸í·É¾î ·¹º§·Î µ¹¾Æ¿Â´Ù. ¾î¶²¶§µçÁö ÀÎÅÍ·´Æ® ¹®ÀÚ¸¦ ŸÀÌÇÎÇϴ°ÍÀº º¸ÀåµÈ´Ù. ¿Ö³ÄÇϸé GDB´Â ¾ÈÀüÇÑ ½Ã°£ÀÌ µÉ¶§±îÁö È¿°ú¸¦ °¡Áöµµ·Ï Çã¿ëÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

¸¸ÀÏ ¿©·¯ºÐÀÌ ¿¬°áµÈ ÇÁ·Î¼¼½º³ª µð¹ÙÀ̽º¸¦ Á¦¾îÇϱâ À§ÇØ GDB¸¦ »ç¿ëÇÑ´Ù¸é, ¿©·¯ºÐÀº detach¸í·É¾î¸¦ °¡Áö°í ³õ¾ÆÁÖ¾î¾ß ÇÑ´Ù. (ÀÌ¹Ì µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º µð¹ö±ëÇϱ⼽¼ÇÀ» ÂüÁ¶Çضó.)

Shell ¸í·É¾îµé

¸¸ÀÏ ¿©·¯ºÐÀÌ µð¹ö±ë ¼¼¼Çµ¿¾È °æ¿ì¿¡ µû¶ó shell ¸í·É¾î¸¦ ½ÇÇàÇÒ Çʿ䰡 ÀÖ´Ù¸é, GDB¸¦ ³ª°¡°Å³ª ÀϽÃÁßÁöÇÒ Çʿ䰡 ¾ø´Ù; ¿©·¯ºÐÀº ´ÜÁö shell ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

shell command string
command string¸¦ ½ÇÇàÇϱâ À§ÇØ Ç¥ÁØ shellÀ» ±âµ¿ÇÑ´Ù. ¸¸ÀÏ shellÀÌ Á¸ÀçÇÑ´Ù¸é, ȯ°æº¯¼ö SHELL´Â ±âµ¿µÉ shellÀ» °áÁ¤ÇÑ´Ù. ±×·¸Áö ¾ÊÀ¸¸é GDB´Â /bin/sh¸¦ »ç¿ëÇÑ´Ù.

make´Â °³¹ß ȯ°æ¿¡¼­ ÀÚÁÖ ÇÊ¿äÇÏ´Ù. ¿©·¯ºÐÀº GDB¿¡¼­ ÀÌ ¸ñÀûÀ» À§ÇØ shell¸í·É¾î¸¦ »ç¿ëÇÒ Çʿ䰡 ¾ø´Ù:

make make-args
ÁöÁ¤µÈ ÀÎÀÚ¸¦ °¡Áö°í make ÇÁ·Î±×·¥À» ½ÇÇàÇØ¶ó. À̰ÍÀº `shell make make-args'¿Í °°´Ù.

GDB ¸í·É¾îµé

¿©·¯ºÐÀº Ãà¾àÇüÀÌ ¸ðÈ£ÇÏÁö ¾Ê´Ù¸é ¸í·É¾î À̸§ÀÇ Ã³À½ ¸îÀÚ·Î GDB ¸í·É¾î¸¦ Ãà¾àÇÒ¼ö ÀÖ´Ù; ±×¸®°í ¿©·¯ºÐÀº ´ÜÁö RET¸¦ ŸÀÌÇÎÇÏ¿© GDB ¸í·É¾î¸¦ ¹Ýº¹ÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ¶ÇÇÑ GDB ¸í·É¾î ´Ü¾îÀÇ ³ª¸ÓÁö¸¦ ä¿ì±â À§ÇØ TABÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù.(¶Ç´Â ¸¸ÀÏ °Å±â¿¡ 1°³ ÀÌ»óÀÇ ´Ü¾î°¡ ÀÖ´Ù¸é, ¿©·¯ºÐÀÌ ¼±ÅÃÀûÀ¸·Î ÀÌ¿ëÇÒ¼ö ÀÖµµ·Ï º¸¿©ÁØ´Ù.)

¸í·É¾î ±¸¹®

GDB ¸í·É¾î´Â ´ÜÀÏ ¶óÀÎ ÀÔ·ÂÀÌ´Ù. ±æÀÌ¿¡ ´ëÇÑ Á¦ÇÑÀº ¾ø´Ù. ¸í·É¾î À̸§°ú ÇÔ²² ½ÃÀÛÇÏ¸ç ¸í·É¾î À̸§¿¡ ÀÇÁ¸ÇÏ´Â Àǹ̰¡ ÀÖ´Â ÀÎÀÚ°¡ µÚµû¶ó ¿Â´Ù. ¿¹¸¦ µé¾î, step¸í·É¾î´Â `step 5'ó·³ ½ºÅÜÀ» À§ÇÑ °¹¼ö¸¦ ¹Þ´Â´Ù. ¿©·¯ºÐÀº ¶ÇÇÑ ÀÎÀÚ ¾øÀÌ step¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ¸î¸î ¸í·É¾î À̸§µéÀº ¾î¶² ÀÎÀÚµµ Çã¿ëÇÏÁö ¾Ê´Â´Ù.

GDB´Â Ãà¾àÇüÀÌ ¸ðÈ£ÇÏÁö ¾Ê´Ù¸é Ç×»ó ¸í·É¾îÀ̸§À» Ãà¾àÇÑ´Ù. ´Ù¸¥ °¡´ÉÇÑ ¸í·É¾î Ãà¾àÇüµéÀº ¹®¼­¾È¿¡ ³ª¿­ µÇ¾î ÀÖ´Ù. ¸î¸î °æ¿ì¿¡´Â, ¸ðÈ£ÇÑ Ãà¾àÇüÁ¶Â÷ Çô¿ëµÈ´Ù.; ¿¹¸¦ µé¾î, s´Â ºñ·Ï s·Î ½ÃÀÛÇÏ´Â ´Ù¸¥ ¸í·É¾îµéÀÌ ÀÖ´ÙÇÒÁö¶óµµ step¿Í °°Àº °ÍÀ¸·Î½á Ưº°È÷ Á¤ÀǵǾî ÀÖ´Ù. ¿©·¯ºÐÀº help ¸í·É¾î¿¡ ÀÎÀڷνá À̰͵éÀ» »ç¿ëÇÏ¿© Ãà¾àÇüÀ» Å×½ºÆ®ÇÒ¼ö ÀÖ´Ù.

GDB¿¡ ÀÔ·ÂÀ¸·Î½á ºó ¶óÀÎ(´ÜÁö RET¸¦ ŸÀÌÇÎÇϴ°Í)Àº Àü ¸í·É¾îÀÇ ¹Ýº¹À» ÀǹÌÇÑ´Ù. ¾î¶°ÇÑ ¸í·É¾î(¿¹¸¦ µé¾î, run)´Â ÀÌ ¹æ¹ýÀ¸·Î ¹Ýº¹µÇÁö ¾Ê´Â´Ù; ÀÌµé ¸í·É¾î´Â ¹®Á¦¸¦ ¾ß±âÇÒ¼ö ÀÖ°í ¹Ýº¹À» ¿øÇÏÁö ¾Ê´Â ¸í·É¾îµéÀÌ´Ù.

list¿Í x¸í·É¾î´Â ¿©·¯ºÐÀÌ RET·Î ¹Ýº¹ÇÒ¶§, ŸÀÌÇÎó·³ Á¤È®È÷ ¹Ýº¹ÇÏ´Â°Í À̿ܿ¡ »õ·Î¿î ÀÎÀÚ¸¦ ¸¸µç´Ù. À̰ÍÀº ¼Ò½º³ª ¸Þ¸ð¸®¸¦ ½±°Ô ½ºÄÉ´×Çϴ°ÍÀ» Çã¿ëÇÑ´Ù.

GDB´Â ¶ÇÇÑ ´Ù¸¥ ¹æ¹ýÀ¸·Î RET¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù: more¿Í ºñ½ÁÇÑ ¹æ¹ýÀ¸·Î Ãâ·Â ±æÀ̸¦ ºÐÇÒÇϱâ À§ÇØ »ç¿ëÇÒ¼ö ÀÖ´Ù.(Screen Å©±â¼½¼ÇÀ» ÂüÁ¶Çضó.) À̰ÍÀº ÀÌ »óȲ¿¡¼­ ³Ê¹« ¸¹ÀÌ RET¸¦ ´©¸£±â ½±±â ¶§¹®¿¡, GDB´Â µð½ºÇ÷¹ÀÌÀÇ ¹üÀ§¸¦ ¸¸µå´Â ¸í·É¾îÈÄ ¸í·É¾î ¹Ýº¹À» ºÒ°¡´ÉÇÏ°Ô ÇÑ´Ù.

#¿¡¼­ ¶óÀγ¡±îÁöÀÇ ÅØ½ºÆ®´Â ÁÖ¼®ÀÌ´Ù; ¾Æ¹«°Íµµ ¾Æ´Ï¶ó´Â °ÍÀÌ´Ù. À̰ÍÀº ¸í·É¾î ÆÄÀϵ鿡¼­ ¸Å¿ì À¯¿ëÇÏ´Ù.(¸í·É¾î ÆÄÀϵ鼽¼ÇÀ» ÂüÁ¶Çضó.)

¸í·É¾î ¿Ï¼º

GDB´Â ¸¸ÀÏ ÇѰ¡ÁöÀÇ °¡´É¼º¸¸ ÀÖ´Ù¸é ¿©·¯ºÐÀ» À§ÇØ ¸í·É¾î ´Ü¾îÀÇ ³ª¸ÓÁö¸¦ ä¿öÁØ´Ù.; ¶ÇÇÑ ¾î¶²¶§µçÁö ¸í·É¾î¿¡¼­ ´ÙÀ½ ´Ü¾î¸¦ À§ÇÑ °¡´ÉÇÑ ¸ðµç °æ¿ì¸¦ ¿©·¯ºÐ¿¡°Ô º¸¿©ÁØ´Ù. À̰ÍÀº GDB¸í·É¾î, GDB ÇÏÀ§ ¸í·É¾î, ±×¸®°í ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ ½Éº¼µéÀÇ À̸§¿¡¼­ ÀÛµ¿ÇÑ´Ù.

¿©·¯ºÐÀº ´Ü¾îÀÇ ³ª¸ÓÁö¸¦ ä¿ì±æ ¿øÇÒ¶§¸¶´Ù TAB۸¦ ´­·¯¶ó. ¸¸ÀÏ ÇѰ¡ÁöÀÇ °¡´É¼º¸¸ ÀÖ´Ù¸é, GDB´Â ´Ü¾î¸¦ ä¿ì°í ¸í·É¾î¸¦ ³¡¸¶Ä¡±æ ±â´Ù¸°´Ù. (¶Ç´Â RET¸¦ ´­·¯¶ó.) ¿¹¸¦ µé¾î ¿©·¯ºÐÀÌ ´ÙÀ½À» ÇÑ´Ù¸é,

(gdb) info bre TAB

GDB´Â `breakpoints' ´Ü¾îÀÇ ³ª¸ÓÁö¸¦ ä¿î´Ù. ¿Ö³ÄÇϸé `bre'·Î ½ÃÀÛÇÏ´Â infoÀÇ ÇÏÀ§ ¸í·É¾î´Â À̰ͻÓÀ̱⠶§¹®ÀÌ´Ù.

(gdb) info breakpoints

¿©·¯ºÐÀº ¿©±â¼­ info breakpoints ¸í·É¾î¸¦ µ¹¸®±â À§ÇØ RET¸¦ ´©¸£°Å³ª, ¸¸ÀÏ ¿©·¯ºÐÀÌ ¿¹»óÇÑ ´Ü¾î°¡ ¾Æ´Ï¶ó¸é backspace³ª ±×¹ÛÀÇ ´Ù¸¥ °ÍÀ» ´­·¯¶ó. (¸¸ÀÏ ¿©·¯ºÐÀÌ info breakpoints¸¦ ¿øÇÏ´Â°Ô È®½ÇÇÏ´Ù¸é, ¿©·¯ºÐÀº ¸í·É¾î ¿Ï¼º ´ë½Å ¸í·É¾î Ãà¾àÇüÀ» ÀÌ¿ëÇϱâ À§ÇØ ´ÜÁö `info bre'ÈÄ¿¡ Áï½Ã RET¸¦ ÇØµµ µÈ´Ù.)

¸¸ÀÏ ¿©·¯ºÐÀÌ TABÀ» ´©¸¦¶§ ´ÙÀ½ ´Ü¾îÀÇ °¡´É¼ºÀÌ ÇѰ¡Áö ÀÌ»óÀ̶ó¸é GDB´Â º§¼Ò¸®¸¦ ¿ï¸°´Ù. ¿©·¯ºÐÀº ´õ ¸¹Àº ´Ü¾î¸¦ Á¦°øÇÏ°í ´Ù½Ã ½ÃµµÇϰųª ´ÜÁö 2¹ø TAB۸¦ ´©¸¦¼ö ÀÖ´Ù.; GDB´Â ¸ðµç °¡´ÉÇÑ ¿Ï¼ºÇüÀ» º¸¿©ÁØ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº `make_'·Î ½ÃÀÛÇÏ´Â À̸§ÀÇ ¼­ºê·çƾ¿¡ breakpoint¸¦ ¼³Á¤Çϱ⠿øÇÒÁö ¸ð¸¥´Ù. ±×·¯³ª ¿©·¯ºÐÀÌ b make_TAB ¸¦ ÇÑ´Ù¸é GDB´Â ´ÜÁö º§¼Ò¸®¸¸À» ³½´Ù.TABÀ» ´Ù½Ã ŸÀÌÇÎÇϸé ÀÌ ¹®ÀÚµé·Î ½ÃÀÛÇÏ´Â ¸ðµç ÇÔ¼ö À̸§À» º¸¿©ÁØ´Ù. ¿¹¸¦ µé¾î:

(gdb) b make_ TAB
GDB sounds bell; press TAB again, to see:
make_a_section_from_file     make_environ               
make_abs_section             make_function_type         
make_blockvector             make_pointer_type          
make_cleanup                 make_reference_type        
make_command                 make_symbol_completion_list
(gdb) b make_

°¡´ÉÇÑ ¸ðµç °æ¿ì¸¦ Ãâ·ÂÇÑÈÄ, GDB´Â ¿©·¯ºÐÀÇ ºÎºÐÀûÀÎ ÀÔ·Â(¿¹¿¡¼­ `b make_')À» º¹»çÇÏ°í ¸í·É¾î¸¦ ¸¶Ä¥¼ö ÀÖ´Ù.

¿©·¯ºÐÀÌ Ã³À½ À§Ä¡¿¡¼­ ¼±Åà ¸®½ºÆ®µéÀ» º¸±æ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀº TAB¸¦ µÎ¹ø ´©¸£±âº¸´Ù M-?¸¦ ´©¸¦¼ö ÀÖ´Ù. M-?´Â META ?¸¦ ÀǹÌÇÑ´Ù. ¿©·¯ºÐÀº Űº¸µå¿¡¼­ META shift °°Àº°ÍÀ¸·Î µðÀÚÀÎ µÈ ۸¦ ´©¸£°í ?¸¦ ŸÀÌÇÎ Çϰųª ESC ´ÙÀ½¿¡ ?¸¦ ´­·¯ ÇÒ¼ö ÀÖ´Ù.

º¸Åë ´Ü¾î¶ó°í ÇÏ´Â ¿©·¯ºÐÀÌ ÇÊ¿äÇÑ ¹®ÀÚ¿­Àº Áß°ýÈ£³ª ´Ü¾î °³³ä¿¡¼­ Á¦¿ÜµÈ ´Ù¸¥ ´Ü¾î¸¦ Æ÷ÇÔÇÒÁöµµ ¸ð¸¥´Ù. ÀÌ·± °æ¿ì ´Ü¾îÀÇ ¿Ï¼ºÇüÀ» ÀÌ·ç±â À§Çؼ­´Â, ¿©·¯ºÐÀº GDB ¸í·É¾îµéÁß¿¡¼­ '(´ÜÀÏ ÀÎ¿ë ºÎÈ£)¾È¿¡ ´Ü¾î¸¦ ´Ý¾Æ¾ß ÇÑ´Ù.

¿©·¯ºÐÀÌ ÇÊ¿ä·Î ÇÏ´Â ´ëºÎºÐÀÇ »óȲÀº C++ ÇÔ¼ö À̸§À» ¾µ °æ¿ìÀÌ´Ù. ¿Ö³ÄÇϸé C++Àº ÇÔ¼ö ¿À¹ö·ÎµùÀ» Çã¿ëÇϱ⠶§¹®ÀÌ´Ù.(ÀÎÀÚ Å¸ÀÔ¿¡ ÀÇÇØ ±¸º°µÇ´Â °°Àº ÇÔ¼öÀÇ ´ÙÁß Á¤ÀÇ) ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ breakpoint¸¦ ¼³Á¤ÇÏ±æ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀº int ÀÎÀÚ¸¦ °¡Áö´Â name(int) ¹öÀüÀÎÁö, ¶Ç´Â float ÀÎÀÚ¸¦ °¡Áö´Â name(float) ¹öÀüÀÎÁö¸¦ ±¸º°ÇØ¾ß ÇÑ´Ù. ´Ü¾î-¿Ï¼ºÇü±â´ÉÀ» »ç¿ëÇϱâ À§ÇØ, ÇÔ¼ö À̸§ ½ÃÀ۽à '¸¦ ŸÀÌÇÎÇØ¶ó. À̰ÍÀº ¿©·¯ºÐÀÌ TAB¸¦ ´©¸£°Å³ª ¿øÇÏ´Â ´Ü¾î ¿Ï¼ºÇüÀ» À§ÇØ M-?¸¦ ´©¸¦¶§ º¸Å뺸´Ù ´õ ¸¹Àº Á¤º¸¸¦ °íÇôÇÒ Çʿ䰡 ÀÖ´Ù´Â °ÍÀ» GDB¿¡°Ô ¾Ë·Á ÁÖ´Â °ÍÀÌ´Ù.

(gdb) b 'bubble( M-?
bubble(double,double)    bubble(int,int)
(gdb) b 'bubble(

¸î¸î °æ¿ì¿¡, GDB´Â ¿Ï¼ºµÈ À̸§ÀÌ Àο뱸 »ç¿ëÀ» ÇÊ¿ä·Î ÇÑ´Ù´Â °ÍÀ» ¾Ë·Á ÁÙ¼ö ÀÖ´Ù. ÀÌ·± °æ¿ì, GDB´Â ¸¸ÀÏ Ã³À½ À§Ä¡¿¡ Àο뱸¸¦ ŸÀÌÇÎÇÏÁö ¾Ê´Â´Ù¸é ¿©·¯ºÐÀ» À§ÇØ Àο뱸¸¦ ³Ö´Â´Ù.:

(gdb) b bub TAB
GDB´Â ¿©·¯ºÐÀÇ ÀԷ¶óÀÎÀ» ´ÙÀ½Ã³·³ ¼öÁ¤ÇÏ°í º§À» ¿ï¸°´Ù.
(gdb) b 'bubble(

ÀϹÝÀûÀ¸·Î, ¸¸ÀÏ ¿©·¯ºÐÀÌ ¿À¹ö·ÎµùµÈ ½Éº¼ÀÇ ¿Ï¼ºÇüÀ» ¿ä±¸ÇÒ¶§ ÀÎÀÚ ¸®½ºÆ®¸¦ ŸÀÌÇÎÇÏÁö ¾Ê¾Ò´Ù¸é, GDB´Â Àο뱸°¡ ÇÊ¿äÇÏ´Ù´Â°É ¸»ÇØ ÁÙ¼ö ÀÖ´Ù.

µµ¿ò¸» ¾ò±â

¿©·¯ºÐÀº help ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¸í·É¾î¿¡ ´ëÇÑ Á¤º¸¸¦ GDB¿¡°Ô ¿ä±¸ÇÒ¼ö ÀÖ´Ù.

help
h
¿©·¯ºÐÀº ¸í·É¾î Ŭ·¡½ºµéÀÇ À̸§µéÀ» º¸±â À§ÇØ ÀÎÀÚ ¾øÀÌ help( °£´ÜÈ÷ h)¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.
(gdb) help
List of classes of commands:

running -- Running the program
stack -- Examining the stack
data -- Examining data
breakpoints -- Making program stop at certain points
files -- Specifying and examining files
status -- Status inquiries
support -- Support facilities
user-defined -- User-defined commands
aliases -- Aliases of other commands
obscure -- Obscure features

Type "help" followed by a class name for a list of 
commands in that class.
Type "help" followed by command name for full 
documentation.
Command name abbreviations are allowed if unambiguous.
(gdb)
help class
ÀÎÀÚó·³ help Ŭ·¡½ºµé Áß Çϳª¸¦ »ç¿ëÇÏ¿©, ¿©·¯ºÐÀº ±× Ŭ·¡½º³» °¢ ¸í·É¾î ¸®½ºÆ®¸¦ º¼¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿©±â¿¡ status Ŭ·¡½º¸¦ À§ÇÑ µµ¿ò¸» Ãâ·ÂÀÌ ÀÖ´Ù.
(gdb) help status
Status inquiries.

List of commands:

show -- Generic command for showing things set
 with "set"
info -- Generic command for printing status

Type "help" followed by command name for full 
documentation.
Command name abbreviations are allowed if unambiguous.
(gdb)
help command
help ÀÎÀÚ¿¡ ¸í·É¾î À̸§À» ºÙÀ̸é, GDB´Â ±× ¸í·É¾î »ç¿ë ¹æ¹ý¿¡ ´ëÇÑ °£´ÜÇÑ ´Ü¶ôÀ» Ãâ·ÂÇÑ´Ù.
complete args
complete args ¸í·É¾î´Â ¸í·É¾î ½ÃÀÛÀ» À§ÇØ °¡´ÉÇÑ ¿Ï¼ºÇüµé ¸ðµÎ¸¦ ³ª¿­ÇÑ´Ù. ¿©·¯ºÐÀÌ ¿Ï¼ºÇÏ±æ ¿øÇÏ´Â ¸í·É¾îÀÇ ½ÃÀÛÀ» ÁöÁ¤Çϱâ À§ÇØ args¸¦ »ç¿ëÇØ¶ó. ¿¹¸¦ µé¾î:
complete i
°á°ú´Â:
info
inspect
ignore
À̰ÍÀº GNU Emacs »ç¿ëÀ» À§ÇÑ °ÍÀÌ´Ù.

help¿¡ Ãß°¡ÇÏ¿©, ¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÇ »óųª GDB ÀÚüÀÇ »óŸ¦ º¸±â À§ÇØ GDB ¸í·É¾î info¿Í show¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. °¢ ¸í·É¾î´Â ÁúÀǸ¦ À§ÇØ ¸¹Àº °ÍÀ» Á¦°øÇÑ´Ù; ÀÌ ¸Å´º¾óÀº Àû´çÇÑ ¹®¸Æ¿¡¼­ °¢ ¸í·É¾îµéÀ» ¼Ò°³ÇÑ´Ù. »öÀο¡¼­ info¿Í show¾Æ·¡¿¡ ÀÖ´Â ¸®½ºÆ®µéÀº ¸ðµç ÇÏÀ§ ¸í·É¾îµéÀ» °¡¸®Å²´Ù. »öÀÎ ¼½¼ÇÀ» ÂüÁ¶Çضó.

info
ÀÌ ¸í·É¾î(°£´ÜÈ÷ i)´Â ÇÁ·Î±×·¥ÀÇ »óŸ¦ ±â¼úÇÑ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº info args·Î ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁø ÀÎÀÚµéÀ» º¼¼ö ÀÖ°í, info registers¸¦ »ç¿ëÇÏ¿© ÇöÀçÀÇ ¸ðµç ·¹Áö½ºÅ͵éÀ» ³ª¿­ÇÒ¼ö ÀÖÀ¸¸ç, info breakpointsÀ¸·Î ¼³Á¤ÇÑ breakpointµéÀ» º¼¼ö ÀÖ´Ù. ¿©·¯ºÐÀº help info·Î info ÇÏÀ§ ¸í·É¾îÀÇ ¸ðµç ¸®½ºÆ®¸¦ º¼¼ö ÀÖ´Ù.
set
¿©·¯ºÐÀº setÀ» °¡Áö°í ȯ°æº¯¼ö¿¡ Ç¥Çö½ÄÀÇ °á°ú¸¦ ´ëÀÔÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº GDB ÇÁ·ÒÇÁÆ®¸¦ set prompt $¸¦ °¡Áö°í $-signÀ¸·Î ¼³Á¤ÇÒ¼ö ÀÖ´Ù.
show
info¿Í ´ëÁ¶ÀûÀ¸·Î, show´Â GDB ÀÚüÀÇ »óŸ¦ ±â¼úÇÑ´Ù. ¿©·¯ºÐÀº ¿©·¯ºÐÀÌ show ÇÒ¼ö ÀÖ´Â °ÍµéÀÇ ´ëºÎºÐÀ» set ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¹Ù²Ü¼ö ÀÖ´Ù; ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº ¸î°³ÀÇ ½Ã½ºÅÛÀÌ set radix·Î Ãâ·ÂÀ» À§ÇØ »ç¿ëµÇ¾ú´ÂÁö, ¶Ç´Â show radix·Î ÇöÀç »ç¿ëµÈ ½Ã½ºÅÛ °¹¼ö¸¦ Á¶»çÇÒ¼ö ÀÖ´Ù. ¸ðµç ¼³Á¤ °¡´ÉÇÑ ÀÎÀÚµé°ú ÇöÀç °ªµéÀ» º¸¿©ÁÖ±â À§ÇØ, ¿©·¯ºÐÀº ÀÎÀÚ ¾øÀÌ show¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù; ¿©·¯ºÐÀº ¶ÇÇÑ info setµµ »ç¿ëÇÒ¼ö ÀÖ´Ù. µÎ°³ÀÇ ¸í·É¾îµéÀº °°Àº Ãâ·ÂÀ» º¸¿©ÁØ´Ù.

¿©±â¿¡ set ¸í·É¾î¿Ü¿¡ 3°³ÀÇ ³ª¸ÓÁö show ÇÏÀ§ ¸í·É¾îµéÀÌ ÀÖ´Ù.

show version
µ¹¾Æ°¡°í ÀÖ´Â GDB ¹öÀüÀ» º¸¿©ÁØ´Ù. ¿©·¯ºÐÀº GDB ¹ö±×-¸®Æ÷Æ®¿¡ ÀÌ Á¤º¸¸¦ Æ÷ÇÔÇØ¾ß ÇÑ´Ù. ¸¸ÀÏ GDBÀÇ ¿©·¯ ¹öÀüÀ» ¿©·¯ºÐÀÇ ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇϰí ÀÖ´Ù¸é, ¿©·¯ºÐÀº µ¹¾Æ°¡°í ÀÖ´Â GDBÀÇ ¹öÀüÀ» °áÁ¤ÇÏ±æ ¿øÇÒ °ÍÀÌ´Ù.; GDB°¡ ¾÷±×·¹ÀÌµå µÉ¶§¸¶´Ù »õ·Î¿î ¸í·É¾î°¡ ¼Ò°³µÇ°í ¿¹Àü °ÍµéÀº ¾ø¾îÁúÁö ¸ð¸¥´Ù. ¹öÀüÀº ¿©·¯ºÐÀÌ GDB¸¦ ½ÃÀÛÇÒ¶§¸¶´Ù ¼Ò°³µÈ´Ù.
show copying
GDB ¹èÆ÷ Çã°¡±Ç¿¡ °üÇÑ Á¤º¸¸¦ º¸¿©ÁØ´Ù.
show warranty
GNU "NO WARRANTY" ¹®ÀåÀ» º¸¿©ÁØ´Ù.

GDB¿¡¼­ ÇÁ·Î±×·¥ ½ÇÇà½Ã۱â

¿©·¯ºÐÀÌ GDB¿¡¼­ ÇÁ·Î±×·¥À» µ¹¸±¶§, ¿ì¼± ¿©·¯ºÐÀº ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ¶§ µð¹ö±ë Á¤º¸¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ¿©·¯ºÐÀº ¼±ÅÃÇÑ È¯°æ ÇÏ¿¡¼­ ÀÎÀÚ¸¦ °¡Áö°í GDB¸¦ ½ÃÀÛÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÇ ÀԷ°ú Ãâ·ÂÀ» ¸®´ÙÀÌ·º¼ÇÇÒ¼öµµ ÀÖ°í, ÀÌ¹Ì µ¹¾Æ°¡°í ÀÖ´Â ÇÁ·Î¼¼½º¸¦ µð¹ö±ëÇÒ¼öµµ ÀÖ°í, ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ Á×Àϼöµµ ÀÖ´Ù.

µð¹ö±ëÀ» À§ÇÑ ÄÄÆÄÀÏ

ÇÁ·Î±×·¥À» È¿À²ÀûÀ¸·Î µð¹ö±ëÇϱâ À§ÇØ, ¿©·¯ºÐÀº ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ¶§ µð¹ö±ë Á¤º¸¸¦ ¸¸µé¾î¾ß ÇÑ´Ù. ÀÌ µð¹ö±ë Á¤º¸´Â ¿ÀºêÁ§Æ® ÆÄÀÏ¿¡ ÀúÀåµÈ´Ù; ±×°ÍÀº °¢ º¯¼öÀÇ µ¥ÀÌŸ ŸÀÔÀ̳ª ÇÔ¼ö¸¦ ±â¼úÇÑ´Ù. ±×¸®°í ¼Ò½º ¶óÀÎ ¼ö¿Í ½ÇÇà Äڵ峻¿¡¼­ÀÇ ÁÖ¼Ò»çÀ̸¦ ´ëÀÀ½ÃŲ´Ù.

µð¹ö±ë Á¤º¸¸¦ À§ÇØ, ¿©·¯ºÐÀº ÄÄÆÄÀÏ·¯¸¦ µ¹¸±¶§ `-g' ¿É¼ÇÀ» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

¸¹Àº C ÄÄÆÄÀÏ·¯´Â `-g' ¿Í `-O' ¿É¼ÇÀ» °°ÀÌ Ã³¸®ÇÒ¼ö ¾ø´Ù. À̵é ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ¶§, ¿©·¯ºÐÀº µð¹ö±ë Á¤º¸¸¦ Æ÷ÇÔÇÏ´Â ÃÖÀûÈ­µÈ ½ÇÇà È­ÀÏÀ» ¸¸µé¼ö ¾ø´Ù.

GNU C CompilerÀÎ GCC´Â ÃÖÀûÈ­µÈ Äڵ带 µð¹ö±ëÇϴ°ÍÀÌ °¡´ÉÇϵµ·Ï ¸¸µé±â À§ÇØ `-g'¿¡ `-O'¸¦ °¡Áö°Å³ª °¡ÁöÁö ¾ÊÀº°ÍÀ» Áö¿øÇÑ´Ù. ¿ì¸®´Â ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇÒ¶§¸¶´Ù `-g'¿É¼ÇÀ» »ç¿ëÇϱæ ÃßõÇÑ´Ù. ¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÌ Á¤È®ÇÏ´Ù°í »ý°¢ÇÒ¼ö ÀÖÁö¸¸, ¾Ë¼ö ¾ø´Â ¹®Á¦°¡ ÀÖÀ»¼ö ÀÖ´Ù.

¿©·¯ºÐÀÌ `-g -O'¸¦ °¡Áö°í ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ¶§, ¿ÉƼ¸¶ÀÌÀú(optimizer)´Â ¿©·¯ºÐÀÇ Äڵ带 Àç¹è¿­ÇÑ´Ù.; µð¹ö°Å´Â ¿©·¯ºÐ¿¡°Ô ¹«¾ùÀÌ ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. ½ÇÇà °æ·Î°¡ Á¤È®È÷ ¿©·¯ºÐÀÇ ¼Ò½º ÆÄÀϰú ÀÏÄ¡µÇÁö ¾Ê´Â´Ù°í ³Ê¹« ³î¶óÁö ¸¶¶ó! ±Ø´ÜÀûÀÎ ¿¹·Î: ¸¸ÀÏ ¿©·¯ºÐÀÌ º¯¼ö¸¦ Á¤ÀÇÇÏ¿´Áö¸¸ °áÄÚ ±×°ÍÀ» »ç¿ëÇÏÁö ¾Ê¾Ò´Ù¸é, GDB´Â °áÄÚ ±× º¯¼ö¸¦ º¸Áö ¸øÇÑ´Ù.--¿Ö³ÄÇϸé ÄÄÆÄÀÏ·¯´Â ±× º¯¼ö¸¦ Á¸Àç ÇÏÁö ¾Ê´Â°ÍÀ¸·Î ÃÖÀûÈ­ Çϱ⠶§¹®ÀÌ´Ù.

¸î¸î °æ¿ì¿¡ ƯÈ÷ ¸í·É¾î ½ºÄÉÁÙ¸µÀ» ÇÏ´Â ¸Ó½Å¿¡¼­, `-g -O'´Â `-g'¸¸Å­ Àß ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. ¸¸ÀÏ Àǽɽº·´´Ù¸é, `-g'¸¸ °¡Áö°í Àç ÄÄÆÄÀÏ ÇØ¶ó. ±×¸®°í À̰ÍÀÌ ¹®Á¦¸¦ ÇØ°áÇÑ´Ù¸é, ¹ö±×(Å×½ºÆ® °æ¿ì¸¦ Æ÷ÇÔÇÏ¿©!)¸¦ ¿ì¸®¿¡°Ô ¸®Æ÷ÆÃÇØ¶ó.

GNU C ÄÄÆÄÀÏ·¯ÀÇ ¿¹Àü ¹öÀüÀº µð¹ö±ë Á¤º¸¸¦ À§ÇÑ ´Ù¾çÇÑ ¿É¼Ç `-gg' ¸¦ Çã¿ëÇÑ´Ù. GDB´Â ´õÀÌ»ó ÀÌ Çü½ÄÀ» Áö¿øÇÏÁö ¾Ê´Â´Ù; ¸¸ÀÏ ¿©·¯ºÐÀÇ GNU C ÄÄÆÄÀÏ·¯°¡ ÀÌ ¿É¼ÇÀ» °¡Áø´Ù¸é, ´õÀÌ»ó »ç¿ëÇÏÁö ¸¶¶ó.

ÇÁ·Î±×·¥ ½ÃÀÛÇϱâ

run
r
GDB¿¡¼­ ÇÁ·Î±×·¥À» ½ÃÀÛÇϱâ À§Çؼ­ run ¸í·É¾î¸¦ »ç¿ëÇØ¶ó. ¿©·¯ºÐÀº ¿ì¼± ÇÁ·Î±×·¥ À̸§(VxWorks¸¦ Á¦¿ÜÇϰí)À» ÁöÁ¤Çϰųª file ³ª exec-file ¸í·É¾î¸¦ »ç¿ëÇØ¼­ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.(ÆÄÀÏÀ» ÁöÁ¤Çϱâ À§ÇÑ ¸í·É¾îµé ¼½¼ÇÀ» ÂüÁ¶Çضó.)

¸¸ÀÏ ¿©·¯ºÐÀÌ ÇÁ·Î¼¼½º¸¦ Áö¿øÇÏ´Â ½ÇÇà ȯ°æÇÏ¿¡¼­ ÇÁ·Î±×·¥À» µ¹¸°´Ù¸é, runÀº ÇÏÀ§ ÇÁ·Î¼¼½º¸¦ ¸¸µé°í, ±× ÇÁ·Î¼¼½º°¡ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÇÏ¿¡¼­ µ¹¾Æ°¡µµ·Ï ¸¸µç´Ù. (ÇÁ·Î¼¼½º°¡ ¾ø´Â ȯ°æ¿¡¼­, runÀº ÇÁ·Î±×·¥À» ½ÃÀÛÇϱâ À§ÇØ À̵¿ÇÑ´Ù.)

ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀº »óÀ§ ÇÁ·Î¼¼½º¿¡¼­ ¹ÞÀº Á¤º¸¿¡ ÀÇÇØ ¿µÇâÀ» ¹Þ´Â´Ù. GDB´Â ÀÌ Á¤º¸¸¦ Á¦°øÇϱâ À§ÇÑ ¹æ¹ýÀ» Á¦°øÇϸç, ¿©·¯ºÐÀº ÇÁ·Î±×·¥À» ½ÃÀÛÇϱâ Àü¿¡ ÇØ¾ß ÇÑ´Ù.(¿©·¯ºÐÀº ÇÁ·Î±×·¥À» ½ÃÀÛÇÑ ÈÄ ¹Ù²Ü¼ö ÀÖÁö¸¸, ±×·± º¯È­´Â ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ´Â ´ÙÀ½ ¹øºÎÅÍ ¿µÇâÀ» ÁØ´Ù.) ÀÌ Á¤º¸´Â 4°³ÀÇ ¹üÁÖ·Î ³ª´©¾î Áø´Ù.

ÀÎÀÚµé.
run ¸í·É¾îÀÇ ÀÎÀڷνá ÇÁ·Î±×·¥¿¡ ÁÖ±â À§ÇÑ ÀÎÀÚ¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸ÀÏ shellÀ» ¿©·¯ºÐÀÇ Å¸°Ù¿¡¼­ ÀÌ¿ëÇÒ¼ö ÀÖ´Ù¸é, shellÀº ÀÎÀÚ¸¦ Àü´ÞÇϱâ À§ÇØ »ç¿ëµÇ¸ç ¿©·¯ºÐÀº ÀÎÀÚ¸¦ ±â¼úÇÒ¶§ ÆíÇϰÔ(wildcard È®ÀåÀ̳ª º¯¼ö ġȯ) »ç¿ëÇÒ¼ö ÀÖ´Ù. Unix ½Ã½ºÅÛ¿¡¼­, ¿©·¯ºÐÀº SHELL ȯ°æ º¯¼ö¿¡¼­ »ç¿ëµÈ shellÀ» Á¦¾îÇÒ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥ ÀÎÀÚµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
ȯ°æ º¯¼ö.
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº GDB¿¡¼­ ȯ°æÀ» »ó¼Ó¹ÞÁö¸¸, ¿©·¯ºÐÀº ÇÁ·Î±×·¥¿¡ ¿µÇâÀ» Áִ ȯ°æÀÇ ÀϺκÐÀ» º¯°æ À§ÇØ GDB ¸í·É¾î set environment ¿Í unset environment¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥ ȯ°æ¼½¼ÇÀ» ÂüÁ¶Çضó.
ÀÛ¾÷ µð·ºÅ丮.
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº GDB¿¡¼­ ÀÛ¾÷ µð·ºÅ丮¸¦ »ó¼Ó¹Þ´Â´Ù. ¿©·¯ºÐÀº GDB¿¡¼­ cd¸í·É¾î¸¦ »ç¿ëÇÏ¿© GDB ÀÛ¾÷ µð·ºÅ丮¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥ÀÇ ÀÛ¾÷ µð·ºÅ丮¼½¼ÇÀ» ÂüÁ¶Çضó.
Ç¥ÁØ ÀԷ°ú Ãâ·Â.
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº GDB¿¡¼­ »ç¿ëÇÒ¶§ ó·³ Ç¥ÁØ ÀԷ°ú Ãâ·ÂÀ» À§ÇØ °°Àº ÀåÄ¡¸¦ »ç¿ëÇÑ´Ù. ¿©·¯ºÐÀº run ¸í·É¾î ¶óÀο¡¼­ Ç¥ÁØ ÀԷ°ú Ãâ·ÂÀ» ¸®´ÙÀÌ·º¼Ç ÇÒ¼ö ÀÖÀ¸¸ç ¿©·¯ºÐÀº ÇÁ·Î±×·¥¿¡ ´Ù¸¥ ÀåÄ¡¸¦ ¼³Á¤Çϱâ À§ÇØ tty¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ÇÁ·Î±×·¥ÀÇ ÀԷ°ú Ãâ·Â¼½¼ÇÀ» ÂüÁ¶Çضó. °æ°í: ÀԷ°ú Ãâ·Â ¸®´ÙÀÌ·º¼ÇÀÌ ÀÛµ¿ÇÏ´Â µ¿¾È, ¿©·¯ºÐÀº ´Ù¸¥ ÇÁ·Î±×·¥À» µð¹ö±ëÇÏ´Â ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀ» Àü´ÞÇϱâ À§ÇØ ÆÄÀÌÇÁ¸¦ »ç¿ëÇÒ¼ö ¾ø´Ù.; ¸¸ÀÏ ¿©·¯ºÐÀÌ À̰ÍÀ» ½ÃµµÇÑ´Ù¸é, GDB´Â ÇÁ·Î±×·¥À» À߸ø µð¹ö±ë Çϴ°ÍÀÌ µÈ´Ù.

¿©·¯ºÐÀÌ run¸í·É¾î¸¦ »ç¿ëÇϸé, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº Áï½Ã ½ÇÇàµÈ´Ù. ÇÁ·Î±×·¥À» ¸ØÃß±â À§ÇØ Àç¹è¿­ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ Åä·ÐÇϰíÀÚ Çϸé, ÁßÁö¿Í °è¼Ó ¼½¼ÇÀ» ÂüÁ¶Çضó. ÀÏ´Ü ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ÁßÁöÇÑ´Ù¸é, ¿©·¯ºÐÀº print³ª call¸í·É¾î¸¦ »ç¿ëÇÏ¿© ÇÁ·Î±×·¥³» ÇÔ¼ö¸¦ È£ÃâÇÒ¼ö ÀÖ´Ù. µ¥ÀÌŸ °Ë»ç ¼½¼ÇÀ» ÂüÁ¶Çضó.

GDB°¡ ½Éº¼À» ÀÐÀº ¸¶Áö¸· ½Ã°£ÀÌÈÄ ½Éº¼ ÆÄÀÏÀÇ ¼öÁ¤ ½Ã°£ÀÌ ¹Ù²ï´Ù¸é, GDB´Â ±× ½Éº¼ Å×ÀÌºí ¹ö¸®°í ´Ù½Ã ÀоîµéÀδÙ. ½Éº¼À» ´Ù½Ã ÀÐÀ»¶§, GDB´Â ÇöÀç breakpoint¸¦ À¯ÁöÇÒ·Á°í ÇÑ´Ù.

ÇÁ·Î±×·¥ ÀÎÀÚµé

¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ ÀÎÀÚµéÀº run ¸í·É¾îÀÇ ÀÎÀÚ¿¡ ÀÇÇØ ÁöÁ¤ µÈ´Ù. ÀÎÀÚµéÀº shell·Î Àü´ÞµÇ°í, wildcard ¹®ÀÚµé·Î È®ÀåµÇ°í I/OÀÇ ¸®´ÙÀÌ·º¼ÇÀ» ÀÌÇàÇϸç ÇÁ·Î±×·¥¿¡ Àü´ÞµÈ´Ù. ¿©·¯ºÐÀÇ SHELL ȯ°æ º¯¼ö(¸¸ÀÏ Á¸ÀçÇÑ´Ù¸é)´Â GDB°¡ ¹«½¼ shellÀ» »ç¿ëÇÏ´ÂÁö¸¦ ÁöÁ¤ÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ SHELLÀ» Á¤ÀÇÇÏÁö ¾Ê¾Ò´Ù¸é, GDB´Â /bin/shÀ» »ç¿ëÇÑ´Ù.

ÀÎÀÚ°¡ ¾ø´Â runÀº ÀüÀÇ run¿¡ ÀÇÇØ »ç¿ëµÈ °°Àº ÀÎÀÚ³ª set args ¸í·É¾î¿¡ ÀÇÇØ ¼³Á¤µÈ ÀÎÀÚ¸¦ »ç¿ëÇÑ´Ù.

set args
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡´Â ´ÙÀ½ ¹ø¿¡ »ç¿ëÇϱâ À§ÇÑ ÀÎÀÚµéÀ» ÁöÁ¤ÇÑ´Ù. ¸¸ÀÏ set args°¡ ÀÎÀÚ°¡ ¾ø´Ù¸é, runÀº ÀÎÀÚ ¾øÀÌ ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ´Ù. ÀÏ´Ü ¿©·¯ºÐÀÌ ÀÎÀÚ¸¦ °¡Áö°í ÇÁ·Î±×·¥À» µ¹¸±¶§ ´ÙÀ½¹ø runÇϱâÀü¿¡ set argsÀ» »ç¿ëÇϴ°ÍÀº ÀÎÀÚ ¾øÀÌ ´Ù½Ã µ¹¸®±â À§ÇÑ À¯ÀÏÇÑ ¹æ¹ýÀÌ´Ù.
show args
GDB°¡ ½ÇÇàµÆÀ»¶§ ÇÁ·Î±×·¥¿¡ ÁØ ÀÎÀÚµéÀ» º¸¿©ÁØ´Ù.

ÇÁ·Î±×·¥ ȯ°æ

environment´Â ȯ°æ º¯¼öµéÇÏ°í °ªµé·Î ÀÌ·ç¾îÁø´Ù. ȯ°æ º¯¼öµéÀº ¿©·¯ºÐÀÇ »ç¿ëÀÚ À̸§, Ȩ µð·ºÅ丮, Å͹̳ΠŸÀÔ ±×¸®°í µ¹¸®´Â ÇÁ·Î±×·¥ÀÇ Å½»ö °æ·ÎµîÀ» ±â·ÏÇÑ´Ù. º¸Åë ¿©·¯ºÐÀº shell¿¡¼­ ȯ°æ º¯¼ö¸¦ ¼³Á¤ÇÑ´Ù. ±×¸®°í ¿©·¯ºÐÀÌ µ¹¸®´Â ´Ù¸¥ ÇÁ·Î±×·¥ ¸ðµÎ¿¡ ÀÇÇØ »ó¼ÓµÈ´Ù. µð¹ö±ë¶§, ´Ù½Ã GDB¸¦ ½ÃÀÛ ÇÏ´Â°Í ¾øÀÌ ¼öÁ¤µÈ ȯ°æ º¯¼ö·Î ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥À» µ¹¸®´Âµ¥ À¯¿ëÇÏ´Ù.

path directory
GDB¿Í ÇÁ·Î±×·¥ ¾çÂÊ ¸ðµÎ¸¦ À§ÇØ PATH ȯ°æ º¯¼ö(½ÇÇàÀ» À§ÇÑ Å½»ö °æ·Î)¾Õ¿¡ directory¸¦ Ãß°¡ÇÑ´Ù. ¿©·¯ºÐÀº `:'³ª whitespace·Î ºÐ¸®µÇ´Â ¸î¸î µð·ºÅ丮 À̸§À» ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ¸¸ÀÏ directory°¡ °æ·Î¿¡ ÀÌ¹Ì ÀÖ´Ù¸é, ¾ÕÀ¸·Î À̵¿½ÃŰ°í »¡¸® ã°Ô µÈ´Ù. ¿©·¯ºÐÀº GDB°¡ °æ·Î¸¦ Ž»öÇÒ¶§ ÇöÀç ÀÛ¾÷ µð·ºÅ丮°¡ ¹«¾ùÀÎÁö¸¦ ÂüÁ¶Çϱâ À§ÇØ `$cwd'¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ `.'¸¦ »ç¿ëÇÑ´Ù¸é, ±×°ÍÀº ¿©·¯ºÐÀÌ path ¸í·É¾î¸¦ ½ÇÇàÇÏ´Â µð·ºÅ丮¸¦ °¡¸®Å²´Ù. GDB´Â Ž»ö °æ·Î¿¡ directory¸¦ Ãß°¡Çϱâ Àü¿¡ directory ÀÎÀÚ(ÇöÀç °æ·Î¸¦ °¡Áö°í ÀÖ´Â)¿¡ ÀÖ´Â `.'¸¦ ¹Ù²Û´Ù.
show paths
½ÇÇàÀ» À§ÇÑ Å½»ö °æ·Î ¸®½ºÆ®¸¦ º¸¿©ÁØ´Ù.(PATH ȯ°æ º¯¼ö)
show environment [varname]
½ÃÀÛÇÒ¶§ ÇÁ·Î±×·¥¿¡ ÁØ È¯°æº¯¼ö varnameÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ varname¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù¸é, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡ ÁÖ¾îÁø ¸ðµç ȯ°æº¯¼öµéÀÇ À̸§°ú °ªµéÀ» Ãâ·ÂÇÑ´Ù. ¿©·¯ºÐÀº env·Î½á environment¸¦ Ãà¾àÇÒ¼ö ÀÖ´Ù.
set environment varname [=] value
ȯ°æ º¯¼ö varname¸¦ value·Î ¼³Á¤ÇÑ´Ù. ÀÌ °ªÀº GDB ÀÚü°¡ ¾Æ´Ñ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­¸¸ ¹Ù²ï´Ù. value´Â ¾î¶² ¹®ÀÚ¿­ÀÌ´Ù; ȯ°æ º¯¼öÀÇ °ªÀº ´ÜÁö ¹®ÀÚ¿­À̸ç ÇØ¼®Àº ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ ÀÚü¿¡ ÀÇÇØ¼­ Á¦°øµÈ´Ù. valueÀÎÀÚ´Â ¼±ÅÃÀûÀÌ´Ù; ¸¸ÀÏ ¾ø´Ù¸é, º¯¼ö´Â null°ªÀ¸·Î ¼³Á¤µÈ´Ù. ¿¹¸¦ µé¾î, ÀÌ ¸í·É¾î´Â:
set env USER = foo
Unix ÇÁ·Î±×·¥¿¡°Ô »ç¿ëÀÚÀÇ À̸§Àº `foo'À̶ó°í ¸»ÇÏ´Â °ÍÀÌ´Ù. (`='±ÙóÀÇ ½ºÆäÀ̽º´Â ¿©±â¼­ ¸íÈ®È÷ »ç¿ëµÇ¾ú´Ù; ±×µéÀº ½ÇÁ¦·Î ¿ä±¸µÇÁö´Â ¾Ê´Â´Ù.)
unset environment varname
ȯ°æ º¯¼ö¿¡¼­ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡ Àü´ÞµÈ º¯¼ö varname¸¦ Á¦°ÅÇÑ´Ù. À̰ÍÀº `set env varname ='¿Í´Â ´Ù¸£´Ù; unset environment´Â ºó °ªÀ¸·Î ´ëÀÔÇϱ⺸´Ù´Â ȯ°æº¯¼ö¿¡¼­ º¯¼ö¸¦ Á¦°ÅÇÑ´Ù.

°æ°í: ¸¸ÀÏ shellÀÌ Á¸ÀçÇÑ´Ù¸é(¶Ç´Â ¾ø´Ù¸é /bin/sh) GDB´Â SHELL ȯ°æ º¯¼ö°¡ °¡¸®Å°´Â shellÀ» »ç¿ëÇÏ¿© ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥À» µ¹¸°´Ù. ¿©·¯ºÐÀÇ SHELL º¯¼ö´Â ÃʱâÈ­ ÆÄÀÏ¿¡¼­ µ¹¸®´Â shellÀ̶ó¸é--C-shell ¿¡¼­ `.cshrc', BASH¿¡¼­ `.bashrc'--¿©·¯ºÐÀº ÇÁ·Î±×·¥¿¡ ¿µÇâÀ» ÁÖ´Â ±× ÆÄÀÏ¿¡ º¯¼ö¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ȯ°æº¯¼öÀÇ ¼³Á¤À» `.login'³ª `.profile'°ú °°ÀÌ ·Î±×ÀÎÇÒ¶§ µ¹¾Æ°¡´Â ÆÄÀÏ·Î ¿Å±æ¼ö ÀÖ´Ù.

ÇÁ·Î±×·¥ ÀÛ¾÷ µð·ºÅ丮

¿©·¯ºÐÀÌ run·Î ÇÁ·Î±×·¥À» ½ÃÀÛÇÒ¶§¸¶´Ù, GDBÀÇ ÇöÀç ÀÛ¾÷µð·ºÅ丮¿¡¼­ ÀÛ¾÷ µð·ºÅ丮¸¦ »ó¼Ó¹Þ´Â´Ù. GDB ÀÛ¾÷ µð·ºÅ丮´Â ºÎ¸ð ÇÁ·Î¼¼½º¿¡¼­ »ó¼ÓµÇ´Â °ÍÀÌ ¹«¾ùÀ̵çÁö ÃʱâÈ­ ÇÏÁö¸¸, ¿©·¯ºÐÀº cd ¸í·É¾î·Î GDB³»¿¡¼­ »õ·Î¿î ÀÛ¾÷ µð·ºÅ丮¸¦ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù.

GDB ÀÛ¾÷ µð·ºÅ丮 ¶ÇÇÑ ÀÛ¾÷À» À§ÇØ GDB¿¡¼­ ÆÄÀÏÀ» ÁöÁ¤ÇÏ´Â ¸í·É¾î¸¦ ±âº»ÀûÀ¸·Î Á¦°øµÈ´Ù. ÆÄÀÏÀ» ÁöÁ¤ÇÏ´Â ¸í·É¾îµé ¼½¼ÇÀ» ÂüÁ¶Çضó.

cd directory
GDB ÀÛ¾÷ µð·ºÅ丮¸¦ directoryÀ¸·Î ¼³Á¤ÇÑ´Ù.
pwd
GDB ÀÛ¾÷ µð·ºÅ丮¸¦ Ãâ·ÂÇÑ´Ù.

ÇÁ·Î±×·¥ÀÇ ÀԷ°ú Ãâ·Â

±âº»ÀûÀ¸·Î, GDB¿¡¼­ ¿©·¯ºÐÀÌ µ¹¸®´Â ÇÁ·Î±×·¥Àº GDB°¡ »ç¿ëÇÏ´Â °°Àº Å͹̳ο¡ ÀԷ°ú Ãâ·ÂÀ» ÇÑ´Ù. GDB´Â Å͹̳ÎÀ» ¿©·¯ºÐ°ú ´ëÈ­Çϱâ À§ÇÑ ¸ðµå·Î ¹Ù²Û´Ù. ±×·¯³ª GDB´Â ÇÁ·Î±×·¥ÀÌ »ç¿ëÇÏ´Â Å͹̳Π¸ðµå¸¦ ±â·ÏÇÑµÚ ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À» ´Ù½Ã µ¹¸±¶§ ´Ù½Ã ¹Ù²Û´Ù.

info terminal
ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡´Â Å͹̳Π¸ðµå¿¡ ´ëÇØ GDB¿¡ ÀÇÇØ ±â·ÏµÈ Á¤º¸¸¦ º¸¿©ÁØ´Ù.

¿©·¯ºÐÀº run ¸í·É¾î½Ã °¡Áö´Â shell ¸®´ÙÀÌ·º¼ÇÀ» »ç¿ëÇÏ¿© ÇÁ·Î±×·¥ÀÇ ÀԷ°ú Ãß·ÂÀ» ¸®´ÙÀÌ·º¼Ç ÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î,

run > outfile

ÇÁ·Î±×·¥À» ½ÃÀÛÇϸé, Ãâ·ÂÀ» `outfile'À¸·Î µ¹¸°´Ù.

ÇÁ·Î±×·¥ÀÇ ÀԷ°ú Ãâ·ÂÀ» ÁöÁ¤Çϱâ À§ÇÑ ¶Ç ´Ù¸¥ ¹æ¹ýÀº tty ¸í·É¾îÀÌ´Ù. ÀÌ ¸í·É¾î´Â ÀÎÀÚ·Î ÆÄÀÏ À̸§À» °¡Áö¸ç ´ÙÀ½ run ¸í·É¾î½Ã ±âº»ÀûÀ¸·Î ÀÌ ÆÄÀÏÀ» »ç¿ëÇÑ´Ù. ¶ÇÇÑ À̰ÍÀº ´ÙÀ½ run ¸í·É¾î¸¦ À§ÇØ, ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ À§ÇÑ Å͹̳ΠÁ¦¾î¸¦ ¸®¼ÂÇÑ´Ù. ¿¹¸¦ µé¾î,

tty /dev/ttyb

¿¬¼ÓÀûÀÎ run ¸í·É¾î¸¦ °¡Áö°í ½ÃÀÛÇÏ´Â ÇÁ·Î¼¼½ºµéÀº Å͹̳Π`/dev/ttyb'¿¡ ÀԷ°ú Ãâ·ÂÀ» Çϸç Á¦¾î ´Ü¸»±â·Î½á À̰ÍÀ» »ç¿ëÇÑ´Ù.

run¿¡¼­ÀÇ ¸í¹éÇÑ ¸®´ÙÀÌ·º¼ÇÀº tty ¸í·É¾î¸¦ ¹«È¿È­ ½Ã۰í ÀÔÃâ°Ý ÀåÄ¡¿¡¼­ È¿°úÀ» °¡Áø´Ù. ±×·¯³ª Á¦¾î ´Ü¸»±â¿¡¼­³­ È¿°ú°¡ ¾ø´Ù.

¿©·¯ºÐÀÌ tty¸í·É¾î³ª run¸í·É¾î¿¡¼­ ÀÔ·ÂÀ» ¸®´ÙÀÌ·º¼Ç ½Ãų¶§, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¸¦ À§ÇÑ ÀԷ¸¸ÀÌ ¿µÇâÀ» ¹Þ´Â´Ù. GDB¿¡¼­ÀÇ ÀÔ·ÂÀº ¿©ÀüÈ÷ ´Ü¸»±â¿¡¼­ ³ª¿Â´Ù.

ÀÌ¹Ì µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º µð¹ö±ëÇϱâ

attach process-id
ÀÌ ¸í·É¾î´Â ÀÛµ¿ÁßÀÎ ÇÁ·Î¼¼½º¸¦ ¿¬°á½ÃŲ´Ù--GDB ¹Û¿¡¼­ ½ÃÀÛµÈ ÇÁ·Î¼¼½º. (info files´Â ¿©·¯ºÐÀÇ ¿¢Æ¼ºêµÈ Ÿ°ÙÀ» º¸¿©ÁØ´Ù.) ¸í·É¾î´Â ÇÁ·Î¼¼½º ID¸¦ ÀÎÀÚ·Î °¡Áø´Ù. Unix ÇÁ·Î¼¼½º Áß ÇÁ·Î¼¼½º ID¸¦ ã±â À§ÇÑ ÀϹÝÀûÀÎ ¹æ¹ýÀº ps ¸¦ ÀÌ¿ëÇϰųª `jobs -l' shell ¸í·É¾î¸¦ °¡Áö°í ÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ ¸í·É¾î ½ÇÇàÈÄ 2¹ø RET¸¦ ´©¸¥´Ù¸é attach ´Â ¹Ýº¹ÇÏÁö ¾Ê´Â´Ù.

attach¸¦ »ç¿ëÇϱâ À§ÇØ, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥Àº ÇÁ·Î¼¼½º¸¦ Áö¿øÇϴ ȯ°æÇÏ¿¡¼­ µ¹¾Æ°¡¾ß ÇÑ´Ù.; ¿¹¸¦ µé¾î, attach´Â OS°¡ ¾ø´Â bare-º¸µå Ÿ°ÙÀÇ ÇÁ·Î±×·¥¿¡¼­´Â ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù. ¿©·¯ºÐÀº ¶ÇÇÑ ½ÅÈ£¸¦ º¸³»±â À§ÇÑ Çã°¡±ÇÀÌ ÀÖ¾î¾ß ÇÑ´Ù.

attach¸¦ »ç¿ëÇÒ¶§, ¿©·¯ºÐÀº ÇÁ·Î¼¼½º¿¡¼­ µ¹¾Æ°¡´Â ÇÁ·Î±×·¥À» ÁöÁ¤Çϱâ À§ÇØ file ¸í·É¾î¸¦ ¿ì¼± »ç¿ëÇØ¾ß ÇÑ´Ù. ±×¸®°í ½Éº¼ Å×À̺íÀ» ·ÎµåÇØ¾ß ÇÑ´Ù. ÆÄÀÏÀ» ÁöÁ¤Çϱâ À§ÇÑ ¸í·É¾î ¼½¼ÇÀ» ÂüÁ¶Çضó.

ÁöÁ¤µÈ ÇÁ·Î¼¼½º¸¦ µð¹ö±ëÇϱâ À§ÇØ Àç¹è¿­ÈÄ GDB°¡ ÇØ¾ßÇÒ Ã¹¹øÂ° ÀÏÀº ÇÁ·Î¼¼½º¸¦ ¸ØÃß´Â °ÍÀÌ´Ù. ¿©·¯ºÐÀº runÀ¸·Î ÇÁ·Î¼¼½º¸¦ µ¹¸±¶§ GDBÀÇ ¸ðµç ¸í·É¾î¸¦ °¡Áö°í ºÎÂøµÈ ÇÁ·Î¼¼½º¸¦ °Ë»çÇÏ°í ¼öÁ¤ÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù; ¿©·¯ºÐÀº step°ú continue¸¦ ÇÒ¼ö ÀÖ´Ù; ¿©·¯ºÐÀº ½ºÅ丮Áö¸¦ ¼öÁ¤ ÇÒ¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ ÇÁ·Î¼¼½º°¡ °è¼Ó µ¹¾Æ°¡µµ·Ï ÇÒ·Á¸é, ÇÁ·Î¼¼½º¸¦ GDB¿¡ ºÎÂø½ÃŲÈÄ continue ¸í·É¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

detach
¿©·¯ºÐÀÌ ºÎÂøµÈ ÇÁ·Î¼¼½º µð¹ö±ëÀ» ¸¶ÃÆÀ»¶§, GDB Á¦¾î¿¡¼­ ÇÁ·Î¼¼½º¸¦ ³õ¾ÆÁÙ·Á¸é detach ¸í·É¾î¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ÇÁ·Î¼¼½º¸¦ ¶¼¾î³»µµ ½ÇÇàÀº °è¼ÓµÈ´Ù. detach ¸í·É¾î ÈÄ, ÇÁ·Î¼¼½º¿Í GDB´Â ¿ÏÀüÈ÷ µ¶¸³ÀûÀÌµÇ¸ç ¿©·¯ºÐÀº ´Ù¸¥ ÇÁ·Î¼¼½º¸¦ attach ½ÃŰ°Å³ª run·Î ÇÁ·Î¼¼½º¸¦ ½ÃÀÛÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀÌ ¸í·É¾î ½ÇÇàÈÄ ´Ù½Ã RET¸¦ ´©¸¥´Ù¸é detach´Â ¹Ýº¹µÇÁö ¾Ê´Â´Ù.

¿©·¯ºÐÀÌ GDB¸¦ ³ª°¡°Å³ª ºÎÂø½ÃŲ ÇÁ·Î¼¼½º¸¦ °¡Áö°í ÀÖ´Â µ¿¾È run ¸í·É¾î¸¦ »ç¿ëÇϸé, ¿©·¯ºÐÀº ±× ÇÁ·Î¼¼½º¸¦ Á׿©¾ß ÇÑ´Ù. ±âº»ÀûÀ¸·Î, GDB´Â ¿©·¯ºÐÀÌ À̰͵é Áß Çϳª¸¦ Çß´ÂÁö¸¦ È®½ÅÇϱâ À§ÇØ ÁúÀÇÇÑ´Ù.; ¿©·¯ºÐÀº set confirm¸í·É¾î¸¦ »ç¿ëÇÏ¿© È®½ÇÈ÷ ÇÒ Çʿ䰡 ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ Á¦¾îÇÒ¼ö ÀÖ´Ù.(°æ°í ¿É¼Çµé°ú ¸Þ¼¼Áöµé ¼½¼ÇÀ» ÂüÁ¶Çضó.)

ÀÚ½Ä ÇÁ·Î¼¼½º Á×À̱â

kill
GDB¿¡¼­ µ¹¾Æ°¡´Â ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ Á×ÀδÙ.

¸¸ÀÏ ¿©·¯ºÐÀÌ µ¹¾Æ°¡°í ÀÖ´Â ÇÁ·Î±×·¥ ´ë½Å ÄÚ¾î ´ýÇÁ¸¦ µð¹ö±ëÇÏ·Á°í ÇÑ´Ù¸é ÀÌ ¸í·É¾î´Â À¯¿ëÇÏ´Ù. GDB´Â ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡°í ÀÖ´Â µ¿¾È ÄÚ¾î ´ýÇÁ ÆÄÀÏÀ» ¹«½ÃÇÑ´Ù.

¸î¸î OS¿¡¼­, ¿©·¯ºÐÀÌ GDB³»¿¡¼­ ÇÁ·Î±×·¥¿¡ breakpoint¸¦ °É¾îµÐ °æ¿ì GDB¿Ü¿¡¼­ ÀÌ ÇÁ·Î±×·¥À» ½ÇÇàÇÒ¼ö ¾ø´Ù. ¿©·¯ºÐÀº ÀÌ·± »óȲ¿¡¼­ µð¹ö°Å ¹Û¿¡¼­ ÀÌ ÇÁ·Î±×·¥À» µ¹¸±¼ö ÀÖµµ·Ï Çϱâ À§ÇØ kill¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

¸¸ÀÏ ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À» Àç ÄÄÆÄÀÏÇÏ°í ´Ù½Ã ¸µÅ©ÇÑ´Ù°í ÇØµµ kill¸í·É¾î´Â À¯¿ëÇÏ´Ù. ¿Ö³ÄÇÏ¸é ¸¹Àº ½Ã½ºÅÛ¿¡¼­ ÇÁ·Î¼¼½º°¡ µ¹¾Æ°¡´Â µ¿¾È ½ÇÇà ÆÄÀÏÀ» ¼öÁ¤Çϴ°ÍÀÌ ºÒ°¡´ÉÇϱ⠶§¹®ÀÌ´Ù. ÀÌ·± °æ¿ì ´ÙÀ½ ¹ø run¿¡¼­, GDB´Â ÆÄÀÏÀÌ ¹Ù²î¾ú´Ù´Â °ÍÀ» ÀνÄÇÏ¸ç ½Éº¼ Å×À̺íÀ» ´Ù½Ã Àд´Ù. (¿©·¯ºÐÀÇ ÇöÀçÀÇ breakpoint ¼³Á¤°ªÀ» º¸Á¸ÇÒ·Á°í ½ÃµµÇÏ´Â µ¿¾È)

Ãß°¡ÀûÀÎ ÇÁ·Î¼¼½º Á¤º¸

¸î¸î OS´Â ÆÄÀÏ ½Ã½ºÅÛ ¼­ºê·çƾÀ» »ç¿ëÇÏ´Â ÀÛµ¿ÁßÀÎ ÇÁ·Î¼¼½ºÀÇ À̹ÌÁö¸¦ °Ë»çÇϱâ À§ÇØ »ç¿ëµÉ¼ö ÀÖ´Â `/proc'À̶ó ºÒ¸®´Â ±â´ÉÀ» Á¦°øÇÑ´Ù. ¸¸ÀÏ GDB°¡ ÀÌ ±â´ÉÀ» °¡Áø OS¿¡¼­ ÀÛµ¿ÁßÀ̶ó¸é, info proc¸í·É¾î´Â ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡´Â ÇÁ·Î¼¼½º¿¡ °üÇÑ ¸î°¡Áö Á¤º¸¸¦ º¸°í Çϱâ À§ÇØ ÀÌ¿ëµÉ¼ö ÀÖ´Ù. info proc´Â procfs¸¦ Áö¿øÇÏ´Â SVR4 ½Ã½ºÅÛ¿¡¼­¸¸ ÀÛµ¿ÇÑ´Ù.

info proc
ÇÁ·Î¼¼½º¿¡ °üÇÑ À̿밡´ÉÇÑ Á¤º¸¸¦ ¿ä¾àÇÑ´Ù.
info proc mappings
ÇÁ·Î±×·¥¿¡¼­ Á¢±ÙÇÒ¼ö ÀÖ´Â ÁÖ¼Ò¸¦ °¢ ¹üÀ§ÀÇ Àбâ,¾²±â,½ÇÇàÀÎÁö ¾Æ´ÑÁö¿¡ °üÇÑ Á¤º¸¿Í ÇÔ²² º¸¿©ÁØ´Ù.
info proc times
ÇÁ·Î±×·¥°ú ÀÚ½ÄÀ» À§ÇÑ »ç¿ëÀÚ CPU ½Ã°£, ½Ã½ºÅÛ CPU ½Ã°£À» ½ÃÀÛÇÑ´Ù.
info proc id
ÇÁ·Î±×·¥°ú °ü·ÃµÈ ÇÁ·Î¼¼½º ID¸¦ º¸°íÇÑ´Ù; ÀÚ½ÅÀÇ ÇÁ·Î¼¼½º ID, ºÎ¸ðÀÇ ÇÁ·Î¼¼½º ID, ÇÁ·Î¼¼½ºÀÇ ±×·ì ID ±×¸®°í ¼¼¼Ç ID.
info proc status
ÇÁ·Î¼¼½ºÀÇ »óÅ¿¡ °üÇÑ ÀϹÝÀû Á¤º¸¸¦ º¸¿©ÁØ´Ù. ¸¸ÀÏ ÇÁ·Î¼¼½º°¡ ÁßÁöÁßÀ̶ó¸é, ÀÌ º¸°í´Â ¸ØÃá ÀÌÀ¯¿Í ¹ÞÀº ½ÅÈ£¸¦ Æ÷ÇÔÇÑ´Ù.
info proc all
ÇÁ·Î¼¼½º¿¡ °üÇÑ ¸ðµç Á¤º¸¸¦ º¸¿©ÁØ´Ù.

´ÙÁß ¾²·¹µåÀÎ ÇÁ·Î±×·¥ µð¹ö±ëÇϱâ

¸î¸î OS¿¡¼­, ´ÜÀÏ ÇÁ·Î±×·¥Àº ½ÇÇà½Ã ÇϳªÀÌ»óÀÇ ¾²·¹µå¸¦ °¡ÁúÁöµµ ¸ð¸¥´Ù. ¾²·¹µåÀÇ Á¤È®ÇÑ Àǹ̴ OS¸¶´Ù ´Ù¸£Áö¸¸, ÀϹÝÀûÀ¸·Î ´ÜÀÏ ÇÁ·Î±×·¥¿¡¼­ ¾²·¹µå´Â ´ÙÁß ÇÁ·Î¼¼½º¿Í ºñ½ÁÇÏ´Ù.-- ÇϳªÀÇ ÁÖ¼Ò °ø°£À» °øÀ¯Çϴ°ÍÀ» Á¦¿ÜÇϰí(Áï, ±×µéÀº °°Àº º¯¼ö¸¦ °Ë»çÇÏ°í ¼öÁ¤ÇÑ´Ù.) ´Ù¸¥ ÇÑÆíÀ¸·Î, °¢ ¾²·¹µå´Â ÀÚ½ÅÀÇ ·¹Áö½ºÅÍ¿Í ½ÇÇེÅà ±×¸®°í °¢ÀÚÀÇ ¸Þ¸ð¸®¸¦ °¡Áø´Ù.

GDB´Â ´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ¼ö ÀÖ´Â ±â´ÉÀ» Á¦°øÇÑ´Ù.

°æ°í: ÀÌ ±â´ÉÀº ¾²·¹µå¸¦ Áö¿øÇÏ´Â OSÇÏÀÇ ¸ðµç GDB ¼³Á¤¿¡¼­ ÀÌ¿ëÇÒ¼ö Àִ°ÍÀº ¾Æ´Ï´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÇ GDB°¡ ¾²·¹µå¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù¸é, ÀÌµé ¸í·É¾î´Â È¿°ú°¡ ¾ø´Ù. ¿¹¸¦ µé¾î, ¾²·¹µå Áö¿øÀ» ÇÏÁö ¾Ê´Â ½Ã½ºÅÛÀº `info threads'½Ã Á¤º¸¸¦ º¸¿©ÁÖÁö ¾ÊÀ¸¸ç ´ÙÀ½°ú °°ÀÌ thread ¸í·É½Ã À̸¦ °ÅÀýÇÑ´Ù.:

(gdb) info threads
(gdb) thread 1
Thread ID 1 not known.  Use the "info threads" command to
see the IDs of currently known threads.

GDBÀÇ ¾²·¹µå µð¹ö±ë ±â´ÉÀº ÇÁ·Î±×·¥À» µ¹¸®´Â µ¿¾È ¸ðµç ¾²·¹µå¸¦ °üÂûÇÒ¼ö ÀÖµµ·Ï ÇØÁØ´Ù. --±×·¯³ª GDB°¡ Á¦¾î¸¦ °¡Áö°í ÀÖÀ»¶§´Â ¾ðÁ¦³ª, Ưº°È÷ ÇϳªÀÇ ¾²·¹µå°¡ µð¹ö±ëÀÇ Áß½ÉÀÌ´Ù. ÀÌ ¾²·¹µå´Â current thread¶ó ºÒ¸°´Ù. µð¹ö±ë ¸í·É¾î´Â ÇöÀç ¾²·¹µåÀÇ °üÁ¡¿¡¼­ ÇÁ·Î±×·¥ Á¤º¸¸¦ º¸¿©ÁØ´Ù.

GDB°¡ ÇÁ·Î±×·¥¿¡¼­ »õ·Î¿î ¾²·¹µå¸¦ ¹ß°ßÇÒ¶§¸¶´Ù, `[New systag]' ÇüÅ·Π¾²·¹µå¿¡ ´ëÇÑ Å¸°Ù ½Ã½ºÅÛ ½Äº°ÀÚ¸¦ º¸¿©ÁØ´Ù. systag´Â ¾²·¹µå ½Äº°ÀÚÀ̸ç ÇüÅ´ ½Ã½ºÅÛ¿¡ ÀÇÁ¸ÇÑ´Ù. ¿¹¸¦ µé¾î, LynxOS¿¡¼­ ¿©·¯ºÐÀº ´ÙÀ½À» º¼°ÍÀÌ´Ù;

[New process 35 thread 27]

GDB°¡ »õ·Î¿î ¾²·¹µå¸¦ ¹ß°ßÇÒ¶§ º¼¼ö ÀÖ´Ù. ´ëÁ¶ÀûÀ¸·Î, SGI ½Ã½ºÅÛ¿¡¼­ systag´Â ´Ü¼øÈ÷ `process 368'¿Í °°´Ù.

µð¹ö±ë ¸ñÀûÀ¸·Î, GDB´Â ÀÚ½ÅÀÇ ¾²·¹µå ¼ö--Ç×»ó ´ÜÀÏ Á¤¼ö--¸¦ °¡Áö°í ÀÖ´Ù.

info threads
ÇÁ·Î±×·¥¿¡ ÀÖ´Â ÇöÀç ¸ðµç ¾²·¹µåÀÇ ¿ä¾àÀ» Ãâ·ÂÇÑ´Ù. GDB´Â ´ÙÀ½ ¼ø¼­·Î °¢ ¾²·¹µå¸¦ Ãâ·ÂÇÑ´Ù.:
  1. GDB¿¡ ÀÇÇØ ´ëÀÔµÈ ¾²·¹µå ³Ñ¹ö
  2. Ÿ°Ù ½Ã½ºÅÛÀÇ ¾²·¹µå ½Äº°ÀÚ(systag)
  3. ±× ¾²·¹µå¸¦ À§ÇÑ ÇöÀç ½ºÅà ÇÁ·¹ÀÓ ¿ä¾à
GDB ¾²·¹µå ³Ñ¹ö ¿ÞÂÊÀÇ `*'´Â ÇöÀç ¾²·¹µå¸¦ °¡¸®Å²´Ù. ¿¹¸¦ µé¾î,
(gdb) info threads
  3 process 35 thread 27  0x34e5 in sigpause ()
  2 process 35 thread 23  0x34e5 in sigpause ()
* 1 process 35 thread 13  main (argc=1, argv=0x7ffffff8)
    at threadtest.c:68
thread threadno
¾²·¹µå ³Ñ¹ö threadno¸¦ ÇöÀç ¾²·¹µå·Î ¸¸µé¾î¶ó. ÀÌ ¸í·É¾î ÀÎÀÚ threadno´Â `info threads' Ãâ·ÂÀÇ Ã³À½ Çʵ忡¼­ º¸¿©ÁØ °Í ó·³ ³»ºÎ GDB ¾²·¹µå ³Ñ¹öÀÌ´Ù. GDB´Â ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ¾²·¹µåÀÇ ½Ã½ºÅÛ ½Äº°ÀÚ¿Í ÇöÀç ½ºÅà ÇÁ·¹ÀÓ ¿ä¾àÀ» Ãâ·ÂÇÔÀ¸·Î½á ÀÀ´äÇÑ´Ù;
(gdb) thread 2
[Switching to process 35 thread 23]
0x34e5 in sigpause ()
`[New ...]'¸Þ¼¼Áö¿¡¼­ ó·³, `Switching to'´ÙÀ½ÀÇ ÅØ½ºÆ®ÀÇ ÇüÅ´ ¾²·¹µå ½Äº°À» À§ÇÑ ½Ã½ºÅÛ Æí¸®¼º¿¡ ÀÇÁ¸ÇÑ´Ù.
thread apply [threadno] [all] args
thread apply¸í·É¾î´Â ¿©·¯ºÐÀÌ Çϳª³ª ±× ÀÌ»óÀÇ ¾²·¹µå ¸í·É¾î¸¦ Àû¿ëÇÒ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù. ¿©·¯ºÐÀº ¸í·É¾î ÀÎÀÚ threadno·Î ¿µÇ⠹ޱ⸦ ¿øÇÏ´Â ¾²·¹µåÀÇ ¼ö¸¦ ÁöÁ¤Çضó. threadno´Â `info threads' Ãâ·ÂÀÇ Ã³À½ Çʵ忡¼­ º¸¿©ÁذÍó·³ ³»ºÎ ¾²·¹µå ¼öÀÌ´Ù. ¸ðµç ¾²·¹µå¿¡ ¸í·É¾î¸¦ Àû¿ëÇϱâ À§ÇØ, thread apply all args¸¦ »ç¿ëÇØ¶ó.

GDB°¡ breakpoint, signal ¶§¹®¿¡ ÇÁ·Î±×·¥À» ÁßÁö½Ãų¶§¸¶´Ù, GDB´Â ÀÚµ¿ÀûÀ¸·Î breakpoint³ª signalÀÌ ÀϾ ¾²·¹µå¸¦ ¼±ÅÃÇÑ´Ù. GDB´Â ¾²·¹µå¸¦ ½Äº°Çϱâ À§ÇØ `[Switching to systag]' ÇüÅÂÀÇ ¸Þ¼¼Áö¸¦ °¡Áö°í ¹®¸Æ ±³È¯À» Çϵµ·Ï ÇØÁØ´Ù.

¿©·¯ºÐÀÌ ´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥À» ¸ØÃß°í ½ÃÀÛÇÒ¶§ GDB°¡ ÇൿÇÏ´Â ¹æ¹ý¿¡ ´ëÇÏ¿© ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÑ´Ù¸é, ´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥¿¡¼­ ÁßÁö¿Í ½ÃÀÛ ¼½¼ÇÀ» ÂüÁ¶Çضó.

´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥¿¡¼­ watchpoint¿¡ °üÇÑ Á¤º¸¸¦ ¿øÇÑ´Ù¸é watchpoints ¼³Á¤ ¼½¼ÇÀ» ÂüÁ¶Çضó.

´ÙÁß ÇÁ·Î¼¼½º¸¦ °¡Áø ÇÁ·Î±×·¥ µð¹ö±ëÇϱâ

GDB´Â forkÇÔ¼ö¸¦ »ç¿ëÇÏ¿© Ãß°¡ÀûÀÎ ÇÁ·Î¼¼½º¸¦ ¸¸µå´Â ÇÁ·Î±×·¥À» µð¹ö±ë Çϱâ À§ÇÑ Æ¯º°ÇÑ Áö¿øÀ» ÇÏÁö ¾Ê´Â´Ù. ÇÁ·Î±×·¥ÀÌ forkµÇ¾úÀ»¶§, GDB´Â ºÎ¸ð ÇÁ·Î¼¼½º µð¹ö±ëÀ» °è¼ÓÇϸç ÀÚ½Ä ÇÁ·Î¼¼½º´Â Æ÷ÇÔÇÏ¿© µ¹¾Æ°¡Áö ¾Ê´Â´Ù. ¿©·¯ºÐÀÌ ÀÚ½ÄÀÌ ½ÇÇàÇÏ´Â ÄÚµåºÎºÐ¿¡ breakpoint¸¦ ¼³Á¤Çß´Ù¸é, ÀÚ½ÄÀº Á¾·á¸¦ ¾ß±â½ÃŰ´Â(½ÅÈ£¸¦ ÀâÁö ¾Ê´Â´Ù¸é) SIGTRAP½ÅÈ£¸¦ °®´Â´Ù.

±×·¯³ª, ¸¸ÀÏ ¿©·¯ºÐÀÌ ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ µð¹ö±ëÇϱ⸦ ¿øÇÑ´Ù¸é, ±×·¸°Ô ÈûµéÁö´Â ¾Ê´Ù. forkÈÄ¿¡ ÀÚ½Ä ÇÁ·Î¼¼½º ÄÚµå ºÎºÐ¿¡ sleep¸¦ È£ÃâÇÏ¿© ³õ¾Æ¶ó. ¾î¶² ȯ°æº¯¼ö°¡ ¼³Á¤µÇ¾ú°Å³ª ¾î¶² ÆÄÀÏÀÌ Á¸ÀçÇÑ´Ù¸é sleep½ÃŰ´Â °ÍÀº À¯¿ëÇÏ´Ù. ÀÚ½ÄÀÌ sleepÇÏ´Â µ¿¾È, ÇÁ·Î¼¼½º ID¸¦ °¡Áö±â À§ÇØ ps¸¦ »ç¿ëÇØ¶ó. ±×¸®°í GDB(¸¸ÀÏ ¿©·¯ºÐÀÌ ºÎ¸ð ÇÁ·Î¼¼½º¸¦ µð¹ö±ë ÁßÀ̶ó¸é »õ·Î¿î GDB¸¦ ½ÇÇà)¿¡°Ô ÀÚ½Ä ÇÁ·Î¼¼½º(ÀÌ¹Ì µ¹°í ÀÖ´Â ÇÁ·Î¼¼½º µð¹ö±ëÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)¸¦ ¿¬°áÇ϶ó°í ¸»Çضó. ÀÌ ½ÃÁ¡¿¡¼­, ¿©·¯ºÐÀº ¿©·¯ºÐÀÌ ¿¬°áÇÑ ´Ù¸¥ ÇÁ·Î¼¼½º°°ÀÌ ÀÚ½Ä ÇÁ·Î¼¼½º¸¦ µð¹ö±ë ÇÒ¼ö ÀÖ´Ù.

ÁßÁö¿Í °è¼Ó

µð¹ö°Å¸¦ »ç¿ëÇÏ´Â ¿ø·¡ÀÇ ¸ñÀûÀº ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ Á¾·áÇϱâ Àü¿¡ ¸ØÃß°Ô ÇÒ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù.; ¶Ç ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡ ¹®Á¦°¡ ÀÖÀ» °æ¿ì, ¿Ö ±×·±Áö Á¶»çÇÏ°í ¹ß°áÇÒ¼ö ÀÖ´Ù.

GDB³»¿¡¼­, ÇÁ·Î±×·¥Àº signal, breakpoint ¶Ç´Â step°°Àº GDB ¸í·É¾î ÈÄ ´º ¶óÀο¡ µµÂøÇßÀ»¶§¿Í °°Àº ¸î¸î ÀÌÀ¯·Î ¸ØÃâ¼ö ÀÖ´Ù. ±×¸®°í ¿©·¯ºÐÀº º¯¼ö¸¦ °Ë»çÇÏ°í ¹Ù²Ù°Å³ª »õ·Î¿î breakpoint¸¦ ¼³Á¤Çϰųª ¿¹Àü°ÍÀ» ¾ø¾Ö°í ½ÇÇàÀ» °è¼ÓÇÒ¼ö ÀÖ´Ù. º¸Åë, GDB°¡ º¸¿©ÁÖ´Â ¸Þ¼¼Áö´Â ÇÁ·Î±×·¥ »óÅ¿¡ ´ëÇÑ ÃæºÐÇÑ ¼³¸íÀ» º¸¿©ÁØ´Ù.--±×·¯³ª ¿©·¯ºÐÀº ¶ÇÇÑ ¾î¶²¶§µçÁö ÀÌ Á¤º¸¸¦ ¸í¹éÈ÷ ¿ä±¸ÇÒ¼ö ÀÖ´Ù.

info program
ÇÁ·Î±×·¥ÀÇ »óÅ¿¡ °üÇÑ Á¤º¸¸¦ Ãâ·ÂÇÑ´Ù.:ÇÁ·Î±×·¥ÀÌ µ¹¾Æ°¡°Å³ª ¾Æ´Ï°Å³ª, µ¹¾Æ°¡´Â ÇÁ·Î¼¼½º°¡ ¹«¾ùÀ̰ųª¿Í ¿Ö ¸ØÃß¾ú´ÂÁö.

Breakpoints, watchpoints, ±×¸®°í ¿¹¿Üµé

breakpoint´Â ÇÁ·Î±×·¥³» ¾î¶² À§Ä¡¿¡ µµÂøÇÒ¶§¸¶´Ù ¸ØÃß°Ô ÇÑ´Ù. °¢ breakpoint¸¦ À§ÇØ ¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÌ ¾îµð¼­ ¸ØÃâÁö¸¦ Á¦¾îÇϱâ À§ÇÑ Á¶°ÇµéÀ» Ãß°¡ÇÒ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº break¸í·É¾î¿Í º¯¼ö(breakpoints ¼³Á¤¼½¼ÇÀ» ÂüÁ¶Çضó.)·Î breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ±×¸®°í ¶óÀÎ ³Ñ¹ö¿Í ÇÔ¼ö À̸§ ¶Ç´Â Á¤È®ÇÑ ÁÖ¼Ò·Î ÇÁ·Î±×·¥ÀÌ ¸ØÃâ¼ö ÀÖ´Â À§Ä¡¸¦ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù. ¿¹¿Ü 󸮸¦ ÇÏ´Â ¾ð¾î(GNU C++ó·³)¿¡¼­, ¿©·¯ºÐÀº ¶ÇÇÑ ¿¹¿Ü°¡ ÀϾ °÷¿¡(Breakpoints ±×¸®°í ¿¹¿Üµé¼½¼ÇÀ» ÂüÁ¶Çضó.) breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù.

SunOS 4.x, SVR4 ±×¸®°í Alpha OSF/1 ¼³Á¤¿¡¼­, ¿©·¯ºÐÀº ½ÇÇàÀÌ µÇ±â Àü¿¡ °øÀ¯ ¶óÀ̺귯¸®¿¡ breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù.

watchpoint´Â Ç¥Çö½Ä °ªÀÌ ¹Ù²ð¶§ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥À» ¸ØÃß°Ô Çϴ Ưº°ÇÑ breakpointÀÌ´Ù. ¿©·¯ºÐÀº watchpoint(watchpoints ¼³Á¤¼½¼ÇÀ» ÂüÁ¶Çضó.)¸¦ ¼³Á¤Çϱâ À§ÇÑ ´Ù¸¥ ¸í·É¾î¸¦ »ç¿ë ÇØ¾ß ÇÑ´Ù. ±×·¯³ª ±×°Í¿Ü¿¡ ¿©·¯ºÐÀº ´Ù¸¥ breakpoint°°ÀÌ watchpoint¸¦ °ü¸® ÇÒ¼ö ÀÖ´Ù: ¿©·¯ºÐÀº °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ¿© breakpoint¿Í watchpoint¸¦ °¡´ÉÇϰÔ, ºÒ°¡´ÉÇÏ°Ô ±×¸®°í Á¦°ÅÇÒ¼ö ÀÖ´Ù.

¿©·¯ºÐÀº GDB°¡ breakpoint¿¡¼­ ¸ØÃâ¶§¸¶´Ù ÀÚµ¿ÀûÀ¸·Î Ãâ·ÂµÈ °ªµéÀ» ¹è¿­ÇÒ¼ö ÀÖ´Ù. ÀÚµ¿ µð½ºÇ÷¹À̼½¼ÇÀ» ÂüÁ¶Çضó.

GDB´Â ¿©·¯ºÐÀÌ ¸¸µé¶§¸¶´Ù breakpoint³ª watchpoint¿¡ ¼ýÀÚ¸¦ ´ëÀÔÇÑ´Ù; ÀÌµé ³Ñ¹ö´Â 1ºÎÅÍ ½ÃÀÛÇÏ´Â ¿¬¼ÓÀûÀÎ Á¤¼öÀÌ´Ù. breakpointÀÇ ´Ù¾çÇÑ Æ¯Â¡À» Á¦¾îÇϱâ À§ÇÑ ¸¹Àº ¸í·É¾î¿¡¼­, ¿©·¯ºÐÀº º¯°æÀ» ¿øÇÏ´Â breakpoint¿¡ ¸»Çϱâ À§ÇØ breakpoint ¹øÈ£¸¦ »ç¿ëÇÑ´Ù. °¢ breakpoint´Â enabledµÇ°Å³ª disabledµÈ´Ù.;¸¸ÀÏ diabled µÈ´Ù¸é, breakpoint´Â ±×°Ô ´Ù½Ã °¡´ÉÇÏ°Ô µÉ¶§±îÁö ÇÁ·Î±×·¥¿¡ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù.

breakpoints ¼³Á¤

Breakpoint´Â break ¸í·É¾î(°£´ÜÈ÷ b)·Î ¼³Á¤ÇÑ´Ù. µð¹ö°Å Æí¸® º¯¼ö `$bpnum'´Â ¿©·¯ºÐÀÌ °¡Àå ÃÖ±Ù ¼³Á¤ÇÑ breakpointÀÇ ¼ö¸¦ ±â·ÏÇÑ´Ù; ¿©·¯ºÐÀÌ Æí¸®º¯¼ö °¡Áö°í ÇÒ¼ö ÀÖ´Â °ÍÀÌ ¹«¾ùÀÎÁö¸¦ Åä·ÐÇÏ±æ ¿øÇÑ´Ù¸é Æí¸® º¯¼ö ¼½¼ÇÀ» ÂüÁ¶Çضó.

¿©·¯ºÐÀº breakpoint°¡ ¾îµðÀÎÁö¸¦ ¸»Çϱâ À§ÇØ ¿©·¯°¡Áö ¹æ¹ýÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù.

break function
function ÇÔ¼ö functionÀÇ ¿£Æ®¸®¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. C++ °°Àº ½Éº¼ÀÇ ¿À¹ö·ÎµùÀ» Çã¿ëÇÏ´Â ¼Ò½º ¾ð¾î¸¦ »ç¿ëÇÒ¶§, functionÀº break¸¦ À§ÇØ ÇѰ³ ÀÌ»óÀ» °¡Áú¼ö ÀÖ´Ù. ±×·± »óȲÀ» À§Çؼ­, Breakpoint ¸Þ´º¼½¼ÇÀ» ÂüÁ¶Çضó.
break +offset
break -offset
ÇöÀç ¼±ÅÃµÈ ÇÁ·¹ÀÓ¿¡¼­ ¸ØÃá ½ÇÇà À§Ä¡ÀÇ ¾Õ, µÚ ¶óÀÎ ¼ö·Î breakpoint¸¦ ¼³Á¤ÇÑ´Ù.
break linenum
ÇöÀç ¼Ò½º ÆÄÀÏÀÇ ¶óÀÎ linenum¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ ÆÄÀÏÀº ¼Ò½º ÆÄÀÏÀÌ Ãâ·ÂµÈ ¸¶Áö¸· ÆÄÀÏÀÌ´Ù. ÀÌ breakpoint´Â ±× ¶óÀÎ ÄÚµå ½ÇÇàÀü¿¡ ÇÁ·Î±×·¥À» ¸ØÃá´Ù.
break filename:linenum
¼Ò½º ÆÄÀÏ filenameÀÇ ¶óÀÎ linenum¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù.
break filename:function
ÆÄÀÏ filename¿¡ ÀÖ´Â function ÇÔ¼ö ¿£Æ®¸®¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ÇÔ¼öÀ̸§»Ó¸¸ ¾Æ´Ï¶ó ÆÄÀÏÀ̸§ ÁöÁ¤Çϴ°ÍÀº ¿©·¯ ÆÄÀϵéÀÌ °°Àº ÇÔ¼öÀ̸§À» °¡Áö°í ÀÖÀ»¶§¸¦ Á¦¿ÜÇϰí´Â ºÒ ÇÊ¿äÇÏ´Ù.
break *address
addressÁÖ¼Ò¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ¿©·¯ºÐÀº µð¹ö±ë Á¤º¸³ª ¼Ò½º ÆÄÀÏÀ» °¡Áö°í ÀÖÁö ¾Ê´Â ÇÁ·Î±×·¥ÀÇ ÀϺκп¡ breakpoint¸¦ ¼³Á¤Çϱâ À§ÇØ »ç¿ë ÇÒ¼ö ÀÖ´Ù.
break
¾Æ¹« ÀÎÀÚ ¾øÀÌ È£ÃâµÉ¶§, break´Â ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ½ÇÇàµÇ°í ÀÖ´Â ´ÙÀ½ ¸í·É¾î¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù.(½ºÅà °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.) ¼±ÅÃµÈ ÇÁ·¹ÀÓ¿¡¼­, À̰ÍÀº Á¦¾î°¡ ±× ÇÁ·¹ÀÓÀ¸·Î µ¹¾Æ¿ÀÀÚ ¸¶ÀÚ ÇÁ·Î±×·¥À» ¸ØÃßµµ·Ï ¸¸µç´Ù. À̰ÍÀº ¼±ÅÃµÈ ÇÁ·¹ÀÓ ³» ÇÁ·¹ÀÓ¿¡¼­ finish ¸í·É¾î¿¡ ÀÇÇÑ °á°ú¿Í ºñ½ÁÇÏ´Ù.--ÀÌ finish´Â breakpoint¸¦ Ȱ¼ºÈ­ ½ÃÄÑ ³õÁö ¾Ê´Â´Ù´Â°ÍÀ» Á¦¿ÜÇϰí. ¸¸ÀÏ ¿©·¯ºÐÀÌ °¡Àå ³»ºÎ ÇÁ·¹ÀÓ¿¡ ÀÎÀÚ ¾øÀÌ break¸¦ »ç¿ëÇÑ´Ù¸é, GDB´Â ÇöÀç À§Ä¡¿¡ µµ´ÞÇÏ´Â ´ÙÀ½¹ø¿¡ ¸ØÃá´Ù; À̰ÍÀº ·çÇÁ³»¿¡¼­ À¯¿ëÇÏ´Ù. GDB´Â º¸Åë ½ÇÇàÀ» °è¼ÓÇÒ¶§ Àû¾îµµ ÇѰ³ÀÇ ¸í·É¾î°¡ ½ÇÇàµÉ¶§±îÁö breakpoint¸¦ ¹«½ÃÇÑ´Ù. ¸¸ÀÏ À̰ÍÀ» ÇÏÁö ¾Ê´Â´Ù¸é, ¿©·¯ºÐÀº breakpoint¸¦ disable ½ÃŰ´Â°Í ¾øÀÌ brekapoint¸¦ ºü¸£°Ô ó¸®ÇÒ¼ö ¾ø´Ù. ÀÌ ±ÔÄ¢Àº ÇÁ·Î±×·¥ÀÌ ¸ØÃâ¶§ breakpoint°¡ ÀÌ¹Ì Á¸ÀçÇϵçÁö ¾ÈÇϵçÁö Àû¿ëµÈ´Ù.
break ... if cond
Á¶°Ç cond·Î breakpoint¸¦ ¼³Á¤ÇÑ´Ù.; breakpoint¿¡ µµÂøÇÒ¶§¸¶´Ù Ç¥Çö½Ä cond¸¦ Æò°¡Çϰí, ¸¸ÀÏ °ªÀÌ 0ÀÌ ¾Æ´Ï¶ó¸é ¸ØÃá´Ù.--Áï, cond°¡ ÂüÀ¸·Î Æò°¡µÈ´Ù¸é. `...'´Â À§¿¡ ±â¼úÇÑ °¡´ÉÇÑ ÀÎÀÚÁß Çϳª¸¦ ³ªÅ¸³½´Ù. breakpoint Á¶°Ç¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ À§ÇØ Break Á¶°Çµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
tbreak args
Çѹø¸¸ ¸ØÃßµµ·Ï breakpoint¸¦ ¼³Á¤ÇÑ´Ù. Set a breakpoint enabled only for one stop. args´Â break ¸í·É¾î¿Í °°À¸¸ç, breakpoint´Â °°Àº ¹æ¹ýÀ¸·Î ¼³Á¤µÈ´Ù. ±×·¯³ª breakpoint´Â ÀÚµ¿ÀûÀ¸·Î ÇÁ·Î±×·¥ÀÌ Çѹø ¸ØÃá ´ÙÀ½¿¡ Áö¿öÁø´Ù. breakpoints disableÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.
hbreak args
Çϵå¿þ¾î-Áö¿ø breakpoint¸¦ ¼³Á¤ÇÑ´Ù. args´Â break ¸í·É¾î¿Í °°À¸¸ç breakpoint´Â °°Àº ¹æ¹ýÀ¸·Î ¼³Á¤µÈ´Ù. ±×·¯³ª breakpoint´Â Çϵå¿þ¾î Áö¿øÀ» ¿ä±¸ÇÏ¸ç ¸î¸î Çϵå¿þ¾î Ÿ°ÙÀº ÀÌ·¯ÇÑ Áö¿øÀ» ÇÏÁö ¾Ê´Â´Ù. ÀÌ ¸í·É¾îÀÇ ÁÖ¿ä ¸ñÀûÀº EPROM/ROM ÄÚµå µð¹ö±ëÀ̸ç, ¿©·¯ºÐÀº ¸í·É¾î¸¦ ¹Ù²Ù´Â°Í ¾øÀÌ ¸í·É¾î¿¡ breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ÀÌ ¸í·É¾î´Â SPARClite DSU°¡ Á¦°øÇÏ´Â »õ·Î¿î trap-¹ß»ý½Ã »ç¿ëµÉ¼ö ÀÖ´Ù. DSU´Â ÇÁ·Î±×·¥ÀÌ ¸î¸î µ¥ÀÌÅͳª ·¹Áö½ºÅ͸¦ µð¹ö±ëÇϱâ À§ÇØ ÇÒ´çµÈ ¸í·É¾î ÁÖ¼Ò¸¦ Á¢±ÙÇÒ¶§ trapÀ» ¹ß»ýÇÑ´Ù. ±×·¯³ª Çϵå¿þ¾î breakpoint ·¹Áö½ºÅÍ´Â µÎ°³ÀÇ µ¥ÀÌÅÍ breakpoint¸¦ °¡Áö¸ç GDB´Â µÎ°³ ÀÌ»óÀÌ »ç¿ëµÈ´Ù¸é ÀÌ ¸í·É¾î¸¦ °ÅÀýÇÑ´Ù. »õ·Î¿î °ÍÀ¸·Î ¼³Á¤Çϱâ Àü¿¡ »ç¿ëµÇÁö ¾Ê´Â Çϵå¿þ¾î breakpoint¸¦ delete Çϰųª disable ÇÑ´Ù. Break conditions ¼½¼ÇÀ» ÂüÁ¶Çضó.
thbreak args
Çѹø ¸ØÃߴ°ÍÀÌ °¡´ÉÇϵµ·Ï Çϵå¿þ¾î-Áö¿ø breakpoint¸¦ ¼³Á¤ÇÑ´Ù. args´Â hbreak ¸í·É¾î¿Í °°À¸¸ç breakpoint´Â °°Àº ¹æ¹ýÀ¸·Î ¼³Á¤µÈ´Ù. ±×·¯³ª, tbreak ¸í·É¾îó·³, breakpoint´Â ÀÚµ¿ÀûÀ¸·Î ÇÁ·Î±×·¥ÀÌ Ã³À½ ¸ØÃá´ÙÀ½¿¡ Áö¿öÁø´Ù. ¶ÇÇÑ, hbreak ó·³, breakpoint´Â Çϵå¿þ¾î Áö¿øÀ» ¿ä±¸ÇÏ¸ç ¸î¸î Ÿ°Ù Çϵå¿þ¾î´Â ÀÌ·¯ÇÑ Áö¿øÀ» ÇÏÁö ¾Ê´Â´Ù. breakpoints disableÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó. ¶ÇÇÑ, Break Á¶°Çµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
rbreak regex
Á¤±Ô½Ä Ç¥Çö½Ä regex¿Í ¸ÅÄ¡µÇ´Â ¸ðµç ÇÔ¼ö¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ ¸í·É¾î´Â ¾Æ¹« Á¶°Ç¾øÀÌ ÀÏÄ¡ÇÏ´Â ¸ðµç°Í¿¡ breakpoint¸¦ ¼³Á¤ÇÏ¸ç ¼³Á¤µÈ ¸ðµç breakpoint ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. ÀÏ´Ü À̵é breakpoint°¡ ¼³Á¤µÇ¸é, ±×°ÍµéÀº break ¸í·É¾î·Î ¼³Á¤µÈ breakpointó·³ ó¸®µÈ´Ù. ¿©·¯ºÐÀÌ ±×°ÍÀ» Áö¿ì°í, disableÇϰųª ´Ù¸¥ breakpointó·³ Á¶°ÇÀûÀÎ °°Àº ¹æ¹ýÀ¸·Î ¸¸µé¼ö ÀÖ´Ù. C++ ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ¶§, rbreak´Â ¾î¶² ƯÁ¤ Ŭ·¡½ºÀÇ ¸â¹ö°¡ ¾Æ´Ñ ¿À¹ö·ÎµùµÈ ÇÔ¼ö¿¡ breakpoint¸¦ ¼³Á¤ÇÒ¶§ À¯¿ëÇÏ´Ù.
info breakpoints [n]
info break [n]
info watchpoints [n]
Print a table of all breakpoints and watchpoints set and not deleted, with the following columns for each breakpoint:
Breakpoint Numbers
Type
breakpoint³ª watchpoint.
Disposition
¹ß°ßµÇ¾úÀ»¶§ breakpoint°¡ disableµÇ¾ú´ÂÁö deletedµÇ¾ú´ÂÁö.
Enabled or Disabled
enableµÈ breakpoint¸¦ `y'·Î Ç¥½ÃÇÑ´Ù. `n' ´Â enableµÇÁö ¾ÊÀº breakpoint¸¦ ³ªÅ¸³½´Ù.
Address
¸Þ¸ð¸® Á¶¼öó·³ ÇÁ·Î±×·¥³» breakpoint°¡ ¾îµð¿¡ ÀÖ´ÂÁö.
What
ÆÄÀϰú ¶óÀÎ ³Ñ¹öó·³ ÇÁ·Î±×·¥ ¼Ò½º¿¡¼­ breakpoint°¡ ¾îµð¿¡ ÀÖ´ÂÁö.
¸¸ÀÏ breakpoint°¡ Á¶°ÇÀûÀ̶ó¸é, info break´Â ´ÙÀ½¿¡ ¿µÇâ ¹Þ´Â breakpointÀÇ Á¶°ÇÀ» º¸¿©ÁØ´Ù.; ¾î¶²°ÍÀÌ ÀÖ´Ù¸é, breakpoint ¸í·É¾î´Â ±×°Í ´ÙÀ½¿¡ ³ª¿­µÈ´Ù. ÀÎÀÚ·Î breakpoint ³Ñ¹ö number n À» °¡Áö´Â info break´Â ±× breakpoint¿¡¼­¸¸ ³ª¿­µÈ´Ù. Æí¸® º¯¼ö $_°ú x ¸í·É¾î¸¦ À§ÇÑ ±âº» °Ë»ç-ÁÖ¼Ò´Â ³ª¿­µÈ ¸¶Áö¸· breakpointÀÇ ÁÖ¼Ò·Î ¼³Á¤ÇÑ´Ù. (¸Þ¸ð¸® °Ë»çÇϱâ. ¼½¼ÇÀ» ÂüÁ¶Çضó.) info break ´Â breakpoint°¡ È÷Æ®µÈ ¼ö¸¦ Ãâ·ÂÇÑ´Ù. À̰ÍÀº ƯÈ÷ ignore¸í·É¾î¿Í ¿¬°áµÇ¾î »ç¿ëµÉ¶§ À¯¿ëÇÏ´Ù. ¿©·¯ºÐÀº breakpoint È÷Æ® ¼ö¸¦ ¹«½ÃÇÒ¼ö ÀÖÀ¸¸ç, breakpoint°¡ ¾ó¸¶³ª ¸¹ÀÌ È÷Æ®µÇ¾ú´ÂÁö º¸±â À§ÇØ breakpoint info¸¦ º¼¼ö ÀÖÀ¸¸ç ±× ¼öº¸´Ù ÀÛÀº°ÍÀº ¹«½ÃÇÏ°í ´Ù½Ã µ¹¸±¼ö ÀÖ´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ ±× breakpoitnÀÇ ¸¶Áö¸· È÷Æ®¸¦ ºü¸£°Ô °¡Áö°Ô ÇÑ´Ù.

GDB´Â ÇÁ·Î±×·¥³» °°Àº °÷¿¡ ¿©·¯°³ÀÇ breakpoint¸¦ ¼³Á¤ÇÏ´Â°É Çã¿ëÇÑ´Ù. À̰ÍÀÌ ¾î¸®¼®°Å³ª Àǹ̾ø´Â°ÍÀº ¾Æ´Ï´Ù. breakpointµéÀÌ Ãß°¡µÉ¶§, À̰ÍÀº À¯¿ëÇÏ´Ù. (Break Á¶°Çµé ¼½¼ÇÀ» ÂüÁ¶Çضó.).

GDB´Â °¡²û longjmp(C ÇÁ·Î±×·¥¿¡¼­)ÀÇ Ã³¸® °°Àº Ưº°ÇÑ ¸ñÀûÀ» À§ÇØ ÇÁ·Î±×·¥¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù. ÀÌµé ³»ºÎ breakpointµéÀº -1·Î ½ÃÀÛÇÏ¿© À½¼ö ³Ñ¹ö¸¦ ÇÒ´ç¹Þ´Â´Ù.; `info breakpoints'´Â ±×°ÍµéÀ» Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.

¿©·¯ºÐÀº GDB À¯Áö ¸í·É¾î `maint info breakpoints'·Î À̵é breakpointµéÀ» º¼¼ö ÀÖ´Ù.

maint info breakpoints
Using the same format as `info breakpoints'¿Í °°Àº Çü½ÄÀ» »ç¿ëÇÏ¿©, ¿©·¯ºÐÀÌ ¸íÈ®È÷ ¼³Á¤ÇÑ breakpoint µÎ°³¸¦ Ãâ·ÂÇÑ´Ù. ±×¸®°í GDB´Â À̰͵éÀ» ³»ºÎ ¸ñÀûÀ¸·Î »ç¿ëÇÑ´Ù. ³»ºÎ breakpointµéÀº À½¼öÀÇ breakpoint ¼öó·³ º¸ÀδÙ. ŸÀÔ Ä÷³Àº breakpointÀÇ Á¾·ù°¡ ¹«¾ùÀÎÁö¸¦ º¸¿©Áִ°ÍÀ» ½Äº°ÇÑ´Ù.:
breakpoint
º¸Åë, ¸íÈ®È÷ breakpoint¸¦ ¼³Á¤ÇÑ´Ù.
watchpoint
º¸Åë, ¸íÈ®È÷ watchpoint¸¦ ¼³Á¤ÇÑ´Ù. Normal, explicitly set watchpoint.
longjmp
longjmp È£ÃâÀ» ÅëÇØ Á¤È®ÇÑ steppingÀ» ó¸®Çϱâ À§ÇØ »ç¿ëµÈ ³»ºÎ breakpoint
longjmp resume
longjmpÀÇ Å¸°Ù¿¡ ³»ºÎ breakpoint
until
GDB until ¸í·É¾î¿¡ ÀÇÇØ »ç¿ëµÇ´Â Àӽà ³»ºÎ breakpoint.
finish
GDB finish ¸í·É¾î¿¡ ÀÇÇØ »ç¿ëµÇ´Â Àӽà ³»ºÎ breakpoint.

watchpoints ¼³Á¤

¿©·¯ºÐÀÌ º¯È­°¡ ÀϾ°÷À» ¿¹»óÇÏ´Â°Í ¾øÀÌ Ç¥Çö½Ä °ªÀÌ ¹Ù²ð¶§¸¶´Ù ½ÇÇàÀ» ¸ØÃß°íÀÚ Çϸé watchpoint¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

Watchpoint´Â ÇöÀç ´Ù¸¥ breakpointº¸´Ù ´õ õõÈ÷ 2¹èÀÇ ±Ô¸ð·Î ½ÇÇàµÈ´Ù. ±×·¯³ª À̰ÍÀº ÇÁ·Î±×·¥ÀÇ ¾î´À ºÎºÐÀÌ À߸øµÇ¾ú´ÂÁö ½Ç¸¶¸®¸¦ ÀâÁö ¸øÇÒ¶§ ¿¡·¯¸¦ Àâ±â À§ÇÑ ÃæºÐÇÑ °¡Ä¡°¡ ÀÖ´Ù.

watch expr
Ç¥Çö½ÄÀ» À§ÇØ watchpoint¸¦ ¼³Á¤ÇÑ´Ù. GDB´Â exprÀÌ ÇÁ·Î±×·¥¿¡ ¾²¿©Áö°í ±× °ªÀ» ¹Ù²Ü¶§ breakµÈ´Ù. À̰ÍÀº SPARC lite DSU¿¡ ÀÇÇØ Á¦°øµÇ´Â »õ·Î¿î trap-¹ß»ý½Ã »ç¿ëµÈ´Ù. DSU´Â ÇÁ·Î±×·¥ÀÌ ¸î¸î µ¥ÀÌÅͳª ·¹Áö½ºÅ͸¦ µð¹ö±ëÇϱâ À§ÇØ ÇÒ´çµÇ´Â ¸í·É¾î ÁÖ¼Ò¿¡ Á¢±ÙÇÒ¶§ trapÀ» ¹ß»ýÇÑ´Ù. ±×·¯³ª Çϵå¿þ¾î breakpoint registerµéÀº µÎ°³ÀÇ µ¥ÀÌÅÍ watchpoint¸¦ °¡Áø´Ù. ±×¸®°í µÎ°³ÀÇ watchpoint´Â °°Àº Á¾·ùÀ̾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº watch ¸í·É¾î·Î, rwatch ¸í·É¾î·Î, ¶Ç´Â awatch ¸í·É¾î·Î µÎ°³ÀÇ watchpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ÇÑ ¸í·É¾î¾Æ ´Ù¸¥ À̸§À¸·Î ´Ù¸¥ ¸í·É¾î·Î ÇѰ³ÀÇ watchpoint¸¦ ¼³Á¤ÇÒ¼ö ¾ø´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ watchpoint¸¦ ¼¯´Â´Ù¸é ¸í·É¾î´Â °ÅÀýµÉ °ÍÀÌ´Ù. »õ·Î¿î °ÍÀ¸·Î ¼³Á¤ÇϱâÀü¿¡ »ç¿ëµÇÁö ¾ÊÀº watchpoint ¸í·É¾î¸¦ Áö¿ì°Å³ª disableÇØ¶ó.
rwatch expr
args°¡ ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÀÐÇôÁ³À»¶§ breakµÉ watchpoint¸¦ ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ µÎ°³ÀÇ watchpoint¸¦ »ç¿ëÇÑ´Ù¸é, µÎ°³´Â rwatch ¸í·É¾î·Î ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.
awatch expr
args¸¦ Àаí ÇÁ·Î±×·¥¿¡ ÀÇÇØ ¾²¿©Áú¶§ breakµÉ watchpoint¸¦ ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ µÎ°³ÀÇ watchpoint¸¦ »ç¿ëÇÑ´Ù¸é, µÎ°³´Â awatch ¸í·É¾î·Î ¼³Á¤µÇ¾î¾ß ÇÑ´Ù.
info watchpoints
ÀÌ ¸í·É¾î´Â watchpoint¿Í breakpointÀÇ ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù.; info break¿Í °°´Ù.

°æ°í: ¸ÖƼ-¾²·¹µå ÇÁ·Î±×·¥¿¡¼­, watchpoint´Â ±× À¯¿ë¼ºÀÌ Á¦ÇѵȴÙ. ÇöÀç watchpiont ¼öÇà¿¡¼­, GDB´Â ´ÜÀÏ ¾²·¹µåÀÇ Ç¥Çö½Ä °ª¸¸À» º¼¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ Ç¥Çö½ÄÀÌ ÇöÀç ¾²·¹µåÀÇ È°¼ºÈ­(±×¸®°í ¸¸ÀÏ ¿©·¯ºÐÀÌ ¾î¶² ´Ù¸¥ ¾²·¹µåµµ ÇöÀç ¾²·¹µå°¡ µÉ¼ö ¾ø´Ù°í È®½ÅÇÑ´Ù¸é)¶§¹®¿¡ ¹Ù²ï´Ù°í È®½ÅÇÑ´Ù¸é, ¿©·¯ºÐÀº º¸Å붧ó·³ watchpoint¸¦ ¾µ¼ö ÀÖ´Ù. ±×·¯³ª, GDB´Â ÇöÀç ¾²·¹µå°¡ ¾Æ´Ñ ¾²·¹µåÀÇ È°¼ºÈ­°¡ Ç¥Çö½ÄÀ» ¹Ù²Ü ¶§ ÀνÄÇÏÁö ¸øÇÑ´Ù.

Breakpoints ±×¸®°í ¿¹¿Üµé

GNU C++°°Àº ¸î¸î ¾ð¾î¿¡¼­ ¿¹¿Ü 󸮸¦ ´Ù·é´Ù. ¿©·¯ºÐÀº ÇÁ·Î±×·¥¿¡¼­ ¿¹¿Ü°¡ ÀϾ ¿øÀΰú ÁÖ¾îÁø ½ÃÁ¡¿¡¼­ ÇÁ·Î±×·¥ÀÌ Ã³¸®¸¦ ÁغñÇØ¾ßÇÒ ¿¹¿ÜµéÀÇ ¸®½ºÆ®¸¦ °Ë»çÇϱâ À§ÇØ GDB¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

catch exceptions
¿©·¯ºÐÀº catch ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ½ÇÁ¦ ¿¹¿Ü 󸮱⿡ breakpoint¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. exceptions´Â Àâ¾Æ¾ßÇÒ ¿¹¿ÜµéÀÇ À̸§ ¸®½ºÆ®µéÀÌ´Ù.

¿©·¯ºÐÀº Ȱµ¿ÀûÀÎ ¿¹¿Ü Çڵ鷯À¸ ¸®½ºÆ®¸¦ À§ÇØ info catch¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ÇÁ·¹ÀÓ¿¡ °üÇÑ Á¤º¸ ¼½¼ÇÀ» ÂüÁ¶Çضó.

GDB³»¿¡ ¿¹¿Ü 󸮸¦ À§ÇØ ¸î¸î Á¦ÇѵéÀÌ ÀÖ´Ù.:

°¡²û catch´Â ¿¹¿Ü 󸮱⸦ µð¹ö±ëÇϱâ À§ÇÑ ÃÖ¼±ÀÇ ¹æ¹ýÀÌ ¾Æ´Ï´Ù: ¸¸ÀÏ ¿©·¯ºÐÀÌ Á¤È®È÷ ¿¹¿Ü°¡ ÀϾ °÷ÀÌ ¾îµðÀÎÁö¸¦ ¾Ë°íÀÚ ÇÑ´Ù¸é, ¿¹¿Ü 󸮱Ⱑ È£ÃâµÇ±â before¿¡ ¸ØÃß°Ô Çϴ°ÍÀÌ ÁÁ´Ù. ¿Ö³ÄÇÏ¸é ±× ¹æ¹ýÀ¸·Î ¿©·¯ºÐÀº ÀǵµÇÏÁö ¾ÊÀº ÀÏÀÌ ÀϾ±â ÀüÀÇ ½ºÅÃÀ» º¼¼ö Àֱ⠶§¹®ÀÌ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ ¿¹¿Ü ÇÚµé±â ´ë½Å¿¡ breakpoint¸¦ ¼³Á¤ÇÑ´Ù¸é, ¿¹¿Ü°¡ ÀϾ °÷À» ¹ß°ßÇϱⰡ ½±Áö ¾Ê´Ù.

¿¹¿Ü ÇÚµé±â°¡ È£ÃâµÇ±â Àü¿¡ ¸ØÃß±â À§ÇØ, ¿©·¯ºÐÀº ¾à°£ÀÇ Áö½ÄÀÌ ÇÊ¿äÇÏ´Ù. GNU C++ÀÇ °æ¿ì¿¡, ¿¹¿Ü´Â ´ÙÀ½°ú °°Àº ANSI C ÀÎÅÍÆäÀ̽º¸¦ °¡Áö°í ÀÖ´Â __raise_exception¶ó´Â À̸§ÀÇ ¶óÀ̺귯¸® ÇÔ¼ö È£Ãâ¿¡ ÀÇÇØ ¹ß»ýÇÑ´Ù.

    /* addr is where the exception identifier is stored.
       ID is the exception identifier.  */
    void __raise_exception (void **addr, void *id);

ÀǵµÇÏÁö ¾ÊÀº ÀÏÀÌ ÀϾ±â Àü¿¡ ¸ðµç ¿¹¿ÜµéÀ» µð¹ö°ÅÇϵµ·Ï ¸¸µé±â À§ÇØ, __raise_exception¿¡ breakpoint¸¦ ¼³Á¤Çضó. (Breakpoints, watchpoints, ±×¸®°í ¿¹¿Üµé¼½¼ÇÀ» ÂüÁ¶Çضó.)

id°ª¿¡ ÀÇÁ¸ÇÏ´Â Á¶°ÇÀû breakpoint(Break conditions¼½¼ÇÀ» ÂüÁ¶Çضó>)¸¦ °¡Áö°í, ¿©·¯ºÐÀº ƯÁ¤ ¿¹¿Ü°¡ ÀϾ¶§ ÇÁ·Î±×·¥À» ¸ØÃâ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ¿¹¿Ü ³Ñ¹öÁß Çϳª°¡ ÀϾÀ»¶§ ÇÁ·Î±×·¥À» ¸ØÃß±â À§ÇØ ´ÙÁß Á¶°Ç breakpoint¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

breakpoints ¼³Á¤ Áö¿ì±â

breakpoint³ª watchpoint°¡ ÀÛ¾÷À» ¸¶Ä¡°í ´õÀÌ»ó °Å±â¿¡¼­ ¸ØÃß±æ ¿øÇÏÁö ¾Ê´Â´Ù¸é »èÁ¦Çϴ°ÍÀÌ °¡²û ÇÊ¿äÇÏ´Ù. À̰ÍÀ» breakpoint Áö¿ì±â¶ó°í ÇÑ´Ù. »èÁ¦µÈ breakpoint´Â ´õÀÌ»ó Á¸ÀçÇÏÁö ¾Ê´Â´Ù; ÀØÇôÁø´Ù.

clear¸í·É¾î·Î ¿©·¯ºÐÀº ÇÁ·Î±×·¥¿¡ Àִ°÷¿¡ µû¶ó breakpoint¸¦ Áö¿ï¼ö ÀÖ´Ù. delete¸í·É¾î·Î ¿©·¯ºÐÀº breakpoint³Ñ¹ö¸¦ ÁöÁ¤ÇÏ¿© °³°³ÀÇ breakpoint³ª watchpoint¸¦ Áö¿ï¼ö ÀÖ´Ù.

¿¹Àü°ÍÀ» À§ÇØ brekapoint¸¦ Áö¿ï ÇÊ¿ä´Â ¾ø´Ù. GDB´Â ¿©·¯ºÐÀÌ ½ÇÇà ÁÖ¼Ò¸¦ ¹Ù²ÙÁö ¾Ê°í ½ÇÇàÀ» °è¼ÓÇÒ °æ¿ì ½ÇÇàÀÇ Ã³À½ ¸í·É¾î¿¡ ÀÖ´Â breakpoint¸¦ ÀÚµ¿ÀûÀ¸·Î ¹«½ÃÇÑ´Ù.

clear
¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ½ÇÇàµÇ±â À§ÇØ ´ÙÀ½ ¸í·É¾îÀÇ breakpoint¸¦ Áö¿î´Ù. (ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.) °¡Àå ³»ºÎÀÇ ÇÁ·¹ÀÓÀÌ ¼±ÅõǾúÀ»¶§, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ¸ØÃá °÷ÀÇ breakpoint¸¦ Áö¿ì´Â°ÍÀº ÁÁÀº ¹æ¹ýÀÌ´Ù.
clear function
clear filename:function
ÇÔ¼ö functionÀÇ ¿£Æ®¸®¿¡ ¼³Á¤µÈ breakpoint¸¦ Áö¿î´Ù.
clear linenum
clear filename:linenum
ÁöÁ¤µÈ ¶óÀÎÀÇ Äڵ峪 Äڵ峻¿¡ ÀÖ´Â breakpoint¸¦ Áö¿î´Ù.
delete [breakpoints] [bnums...]
ÀÎÀÚ·Î ÁöÁ¤µÈ ¼öÀÇ breakpoint³ª watchpoint¸¦ Áö¿î´Ù. ¸¸ÀÏ ÀÎÀÚ°¡ ÁöÁ¤µÇÁö ¾Ê´Â´Ù¸é, ¸ðµç breakpoint¸¦ Áö¿î´Ù.(¸¸ÀÏ ¿©·¯ºÐÀÌ set confirm off¸¦ ¼³Á¤ÇÏÁö ¾Ê¾Ò´Ù¸é GDB´Â È®ÀÎÀ» ¿ä±¸ÇÑ´Ù.) ¿©·¯ºÐÀº d·Î ¸í·É¾î¸¦ Ãà¾àÇÒ¼ö ÀÖ´Ù.

breakpoints Disable ½Ã۱â

breakpoint³ª watchpoint¸¦ Áö¿ì±â º¸´Ù, ¿©·¯ºÐÀº ±×°ÍµéÀ» disable ½ÃŰ´Â °ÍÀÌ ´õ ÁÁ´Ù. À̰ÍÀº ¸¶Ä¡ Áö¿öÁø°Íó·³ breakpoint°¡ ÀÛµ¿ÇÏÁö ¾Êµµ·Ï ¸¸µç´Ù. ±×·¯³ª breakpoint¿¡ ´ëÇÑ Á¤º¸¸¦ ±â¾ïÇÑ´Ù. ±×·¡¼­ ¿©·¯ºÐÀº ³ªÁß¿¡ ´Ù½Ã ±×°ÍÀ» enable ½Ãų¼ö ÀÖ´Ù.

¿©·¯ºÐÀº ¿É¼ÇÀ¸·Î ÀÎÀÚ·Î Çϳª³ª ±× ÀÌ»óÀÇ breakpoint¸¦ ÁöÁ¤ÇÏ¿©, enable, disable ¸í·É¾î·Î breakpoint¿Í watchpoint¸¦ disable, enable ½Ãų¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ »ç¿ëÇϰí ÀÖ´Â ³Ñ¹ö¸¦ ¾ËÁö ¸øÇÑ´Ù¸é, breakpoint³ª watchpointÀÇ ¸®½ºÆ®¸¦ º¸±â À§ÇØ info break³ª info watch¸¦ »ç¿ëÇØ¶ó.

breakpoint³ª watchpoint´Â 4°¡ÁöÀÇ ´Ù¸¥ °¡´É »óŸ¦ °¡Áö°í ÀÖ´Ù.

¿©·¯ºÐÀº breakpoint¿Í watchpoint¸¦ enable, disable ½Ã۱â À§ÇØ ´ÙÀ½ ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù:

disable [breakpoints] [bnums...]
ÁöÁ¤µÈ breakpoint¸¦ Disable ½ÃŲ´Ù--¸¸ÀÏ ¾î¶²°Íµµ ¸®½ºÆ®µÇÁö ¾Ê¾Ò´Ù¸é, ¸ðµç breakpoit°¡ ÇØ´çµÈ´Ù. disabled breakpoint´Â È¿°ú´Â ¾øÁö¸¸ ÀØÇôÁöÁö´Â ¾Ê´Â´Ù. ignore-count, condition°ú °°Àº ¿É¼Ç°ú ¸í·É¾îµéÀº breakpoint°¡ enableµÉ¶§ ´Ù½Ã ±â¾ïµÈ´Ù. ¿©·¯ºÐÀº dis·Î disable¸¦ Ãà¾àÇÒ¼ö ÀÖ´Ù.
enable [breakpoints] [bnums...]
ÁöÁ¤µÈ breakpoint¸¦(¶Ç´Â ¸ðµç Á¤ÀÇµÈ breakpoint) Enable ½ÃŲ´Ù. ±×°ÍµéÀº ÇÁ·Î±×·¥À» ÁßÁöÇÒ¶§ Çѹø¸¸ È¿°ú°¡ ÀÖ´Ù.
enable [breakpoints] once bnums...
ÁöÁ¤µÈ breakpoint¸¦ ÀÓ½ÃÀûÀ¸·Î Enable ½ÃŲ´Ù. GDB´Â ÇÁ·Î±×·¥À» ¸ØÃáÈÄ Áï½Ã À̵é breakpoint¸¦ disable ½ÃŲ´Ù.
enable [breakpoints] delete bnums...
Çѹø ÀÛµ¿½Ã۱â À§ÇØ ÁöÁ¤µÈ breakpoint¸¦ enable ½Ã۰í Á״´Ù. GDB´Â ÇÁ·Î±×·¥ÀÌ ¸ØÃßÀÚ ¸¶ÀÚ À̵é breakpointµéÀ» Áö¿î´Ù.

tbreak(Setting breakpoints¼½¼ÇÀ» ÂüÁ¶Çضó.)·Î ¼³Á¤µÈ breakpoint¸¦ Á¦¿ÜÇϰí, ¿©·¯ºÐÀÌ ¼³Á¤ÇÑ breakpoint´Â enable µÈ´Ù; ¿¬¼ÓÀûÀ¸·Î, À̰͵éÀº ¿©·¯ºÐÀÌ À§ÀÇ ¸í·É¾îÁß Çϳª¸¦ »ç¿ëÇÒ¶§ disableµÇ°Å³ª enable µÈ´Ù.(¸í·É¾î until´Â ÀÚ½ÅÀÇ breakpoint¸¦ ¼³Á¤Çϰí Áö¿î´Ù. ±×·¯³ª ´Ù¸¥ breakpointÀÇ »óÅ´ ¹Ù²ÙÁö ¾Ê´Â´Ù; °è¼Ó°ú ÁßÁö ¼½¼ÇÀ» ÂüÁ¶Çضó.)

ÁßÁö Á¶°Çµé

breakpointÀÇ °£´ÜÇÑ ¼ºÁúÀº ÇÁ·Î±×·¥ÀÌ ÁöÁ¤µÈ À§Ä¡¿¡ µµ´ÞÇÒ¶§¸¶´Ù ÁßÁöÇÑ´Ù´Â Á¡ÀÌ´Ù. ¿©·¯ºÐÀº breakpoint¸¦ À§ÇØ condition¸¦ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù. Á¶°ÇÀº ÇÁ·Î±×·¥ ¾ð¾î¿¡¼­ Boolean Ç¥ÇöÀÌ´Ù.(Ç¥Çö½Ä¼½¼ÇÀ» ÂüÁ¶Çضó.) Á¶°ÇÀ» °¡Áö°í ÀÖ´Â breakpoint´Â ÇÁ·Î±×·¥ÀÌ ±×°÷¿¡ µµÂøÇÒ¶§¸¶´Ù Ç¥Çö½ÄÀ» Æò°¡ÇÑ´Ù. ±×¸®°í ÇÁ·Î±×·¥Àº Á¶°ÇÀÌ trueÀϰæ¿ì ¸ØÃá´Ù.

À̰ÍÀº ÇÁ·Î±×·¥ À¯È¿¼ºÀ» À§ÇÑ °ÍÀÌ´Ù; ±× »óȲ¿¡¼­, ¿©·¯ºÐÀº ÁÖÀåÇϴ°ÍÀÌ À§¹ÝÀÏ °æ¿ì ¸ØÃá´Ù. -- Áï, Á¶°ÇÀÌ °ÅÁþÀ϶§ÀÌ´Ù. C¿¡¼­, ¸¸ÀÏ ¿©·¯ºÐÀÌ Á¶°Ç assertÀ¸·Î ÇØ´ç Á¶°ÇÀ» Å×½ºÆ®ÇÏ±æ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀº Àû´çÇÑ breakpoint¿¡ `! assert'Á¶°ÇÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù.

Á¶°ÇµéÀº watchpoint¸¦ ¹Þ¾ÆµéÀδÙ.; watchpoint´Â ¾î¶µç Ç¥Çö½ÄÀÇ °ªÀ» Á¶»çÇϱ⠶§¹®¿¡ ¿©·¯ºÐµéÀº ±×°ÍµéÀÌ ÇÊ¿äÇÏÁö ¾Ê´Ù.--±×·¯³ª º¯¼öÀ̸§¿¡ watchpoint¸¦ ¼³Á¤Çϴ°ÍÀº °£´ÜÇÏ´Ù. ±×¸®°í »õ·Î¿î °ªÀÌ Èï¹Ì·Î¿î °ªÀÎÁö¸¦ °Ë»çÇϱâ À§ÇÑ Á¶°ÇµéÀ» ÁöÁ¤ÇÑ´Ù.

ÁßÁö Á¶°ÇµéÀº ¿ªÈ¿°ú¸¦ °¡Áú¼ö ÀÖ´Ù. ±×¸®°í ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥³» ÇÔ¼ö È£Ãâ¶§Á¶Â÷µµ °¡Áú¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ÇÁ·Î±×·¥ ÁøÇàÀ̳ª Ưº°ÇÑ µ¥ÀÌŸ ±¸Á¶ÇüÅ·ΠÇÔ¼ö¸¦ Ãâ·ÂÇÏ±æ ¿øÇÒ¶§ ÇÔ¼ö¸¦ Ȱ¼ºÈ­Çϴµ¥ À¯¿ëÇÏ´Ù. °°Àº ÁÖ¼Ò¿¡ ´Ù¸¥ enableµÈ breakpoint¸¸ ¾ø´Ù¸é È¿°ú´Â ¿¹»óÇÏ´Â ´ë·ÎÀÌ´Ù.(±× °æ¿ì, GDB´Â ¿ì¼± ´Ù¸¥ breakpoint¸¦ º¸°í ÇØ´ç Á¶°ÇÀ» °Ë»çÇÏÁö ¾Ê°í ÇÁ·Î±×·¥À» ¸ØÃá´Ù.) breakpoint¸í·É¾î´Â º¸Åë breakpoint°¡ µµÂøÇÒ¶§ ¿ªÈ¿°ú ÀÌÇà ¸ñÀû¿¡ ´õ Æí¸®Çϰí À¯µ¿ÀûÀÌ´Ù.

ÁßÁö Á¶°ÇµéÀº break¸í·É¾î¿¡ ÀÎÀÚ·Î `if'¸¦ »ç¿ëÇÏ¿©, breakpoint°¡ ¼³Á¤µÉ¶§ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù. breakpoints ¼³Á¤Çϱ⠼½¼ÇÀ» ÂüÁ¶Çضó. ±×°ÍµéÀº condition¸í·É¾î¸¦ °¡Áö°í ¾î¶²¶§µçÁö ¹Ù²Ü¼ö ÀÖ´Ù. watch¸í·É¾î´Â if Ű¿öµå¸¦ ÀνÄÇÏÁö ¸øÇÑ´Ù; condition´Â watchpoint¿¡¼­ Á¶°ÇÀ» ºÎ¿©Çϱâ À§ÇÑ À¯ÀÏÇÑ ¹æ¹ýÀÌ´Ù.

condition bnum expression
breakpoint³ª watchpoint ³Ñ¹ö bnum¸¦ À§ÇÑ break Á¶°ÇÀ¸·Î½á expression¸¦ ÁöÁ¤ÇÑ´Ù. ¿©·¯ºÐÀÌ Á¶°ÇÀ» ¼³Á¤ÇÑÈÄ, ¸¸ÀÏ expression °ªÀÌ Âü(C¿¡¼­ 0ÀÌ ¾Æ´Ñ °æ¿ì)À̶ó¸é breakpoint bnum´Â ÇÁ·Î±×·¥À» ¸ØÃá´Ù. ¿©·¯ºÐÀÌ conditionÀ» »ç¿ëÇÒ¶§, GDB´Â Áï½Ã ¹®¹ýÀÌ ¸Â´ÂÁö¸¦ À§ÇØ expression¸¦ °Ë»çÇÑ´Ù. ±×¸®°í ½Éº¼µéÀÌ ¿©·¯ºÐÀÇ breakpointÀÇ ¹®¸Æ¿¡ ÂüÁ¶¸¦ °¡Áö°í ÀÖ´ÂÁö¸¦ °áÁ¤ÇÑ´Ù. GDB´Â ½ÇÁ¦ condition¸í·É¾î°¡ ÁÖ¾îÁú¶§¸¶´Ù expressionÀ» Æò°¡ÇÏÁö ¾Ê´Â´Ù. Expressions ¼½¼ÇÀ» ÂüÁ¶Çضó.
condition bnum
breakpoint ³Ñ¹ö bnum¿¡¼­ Á¶°ÇÀ» Á¦°ÅÇÑ´Ù. º¸Åë ±×°ÍÀº Àý´ëÀûÀÎ breakpoint°¡ µÈ´Ù.

breakpoint Á¶°ÇÀÇ Æ¯º°ÇÑ °æ¿ì´Â breakpoint°¡ ¾î¶² ³Ñ¹öÀÇ Ä«¿îÆ®¿¡ µµÂøÇÒ¶§¸¸ ¸ØÃß´Â °æ¿ìÀÌ´Ù. À̰ÍÀº ¸Å¿ì À¯¿ëÇØ¼­ breakpointÀÇ ignore count¸¦ »ç¿ëÇÏ¿© ±×°ÍÀ» ÇÒ¼ö ÀÖ´Ù. ¸ðµç breakpoint´Â Á¤¼ö·Î½á ignore count¸¦ °¡Áö°í ÀÖ´Ù. °æ¿ìÀÇ ´ëµÎºÐ¿¡¼­, ignore count´Â 0ÀÌ°í ±×·¡¼­ È¿°ú°¡ ¾ø´Ù. ±×·¯³ª ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ignore count°¡ ¾ç¼öÀÎ breakpoint¿¡ µµÂøÇÑ´Ù¸é, ÇÁ·Î±×·¥Àº ¸ØÃß´Â ´ë½Å ignore count¸¦ Çϳª ÁÙÀÌ°í °è¼ÓÇÑ´Ù. °á°úÀûÀ¸·Î ignore count °ªÀÌ nÀ̶ó¸é, breakpoint´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ µµÂøÇÒ ´ÙÀ½¹ø n¿¡¼­´Â ¸ØÃßÁö ¾Ê´Â´Ù.

ignore bnum count
ignore countÀÇ breakpoint ³Ñ¹ö bnum¸¦ count·Î ¼³Á¤ÇÑ´Ù. ´ÙÀ½ count¹øÂ° breakpoint¿¡ µµ´ÞÇßÀ»¶§, ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀº ¸ØÃßÁö ¾Ê´Â´Ù; ignore count¸¦ ÁÙÀ̴°ÍÀÌ¿Ü GDB´Â ¾î¶² Çൿµµ ÇÏÁö ¾Ê´Â´Ù. breakpoint°¡ µµÂøÇÏ´Â ´ÙÀ½¹ø¿¡ ¸ØÃßµµ·Ï Çϱâ À§ÇØ, count¸¦ 0À¸·Î ÇØ¶ó. ¿©·¯ºÐÀÌ breakpoint¿¡¼­ ÇÁ·Î±×·¥ ½ÃÀÛÀ» ´Ù½Ã Çϱâ À§ÇØ continue¸¦ »ç¿ëÇÒ¶§, ¿©·¯ºÐÀº ignore»ç¿ë´ë½Å continue¿¡ ÀÎÀڷνá Á÷Á¢ ignore count¸¦ ÁöÁ¤ ÇÒ¼ö ÀÖ´Ù. °è¼Ó°ú ´Ü°è(stepping)¼½¼ÇÀ» ÂüÁ¶Çضó. ¸¸ÀÏ breakpoint°¡ ¾ç¼öÀÇ ignore count¿Í Á¶°Çµé °¡Áø´Ù¸é, Á¶°ÇÀº °Ë»çµÇÁö ¾Ê´Â´Ù. ÀÏ´Ü ignore count°¡ 0¿¡ µµ´ÞÇϸé, GDB´Â Á¶°Ç °Ë»ç¸¦ ´Ù½Ã ½ÃÀÛÇÑ´Ù. ¿©·¯ºÐÀº ¸Å¹ø °¨¼ÒÇÏ´Â Æí¸®º¯¼ö¸¦ »ç¿ëÇÏ¿© `$foo-- <= 0' °°Àº Á¶°ÇÀ» °¡Áö°í ignore countÀÇ È¿°ú¸¦ º¼¼ö ÀÖ´Ù. Æí¸® º¯¼öµé¼½¼ÇÀ» ÂüÁ¶Çضó.

Breakpoint ¸í·É¾î ¸®½ºÆ®

breakpoint ¶§¹®¿¡ ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀ» ¸ØÃâ¶§ breakpoint(¶Ç´Â watchpoint) ¸í·É¾îµéÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº ¾î¶² Ç¥Çö½ÄÀ̳ª Ȱ¼ºÈ­µÈ ´Ù¸¥ breakpointÀÇ °ªÀ» Ãâ·ÂÇÏ±æ ¿øÇÒÁö ¸ð¸¥´Ù.

commands [bnum]
... command-list ...
end
breakpoint ³Ñ¹ö bnum¸¦ À§ÇÑ ¸í·É¾î ¸®½ºÆ®¸¦ ÁöÁ¤ÇÑ´Ù. ¸í·É¾îµéÀº ´ÙÀ½ ¶óÀο¡ ³ªÅ¸³­´Ù. ¸í·É¾î¸¦ ¸¶Ä¡±â À§Çؼ­´Â ´ÜÁö end¸¦ ¶óÀο¡ Æ÷ÇÔ½ÃŰ¸é µÈ´Ù. breakpoint¿¡¼­ ¸í·É¾îµéÀ» Á¦°ÅÇϱâ À§ÇØ, commands¸¦ ŸÀÔÇÎÇÏ°í ¹Ù·Î end¸¦ ŸÀÌÇÎÇÏ¸é µÈ´Ù.; Áï, ¸í·É¾î¸¦ ÁÖÁö ¾ÊÀ¸¸é µÈ´Ù. bnumÀÎÀÚ°¡ ¾ø´Ù¸é, commands´Â ¸¶Áö¸· breakpoint³ª watchpoint¼³Á¤À» ÂüÁ¶ÇÑ´Ù.(°¡Àå ÃÖ±Ù¿¡ ¸¸³­ breakpoint°¡ ¾Æ´Ï´Ù)

¸¶Áö¸· GDB ¸í·É¾î¸¦ ¹Ýº¹ÇÏ´Â ¼ö´ÜÀ¸·Î½á RET¸¦ ´©¸£´Â°ÍÀº command-list¿¡¼­ disableµÈ´Ù.

¿©·¯ºÐÀº ÇÁ·Î±×·¥À» ´Ù½Ã ½ÃÀÛÇÒ¶§ breakpoint¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ´Ü¼øÈ÷ continue ¸í·É¾î³ª step ¶Ç´Â ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛ ½ÃŰ´Â ´Ù¸¥ ¸í·É¾î¸¦ »ç¿ëÇØ¶ó.

½ÇÇàÀ» ½ÃÀÛÇÏ´Â ¸í·É¾îÈÄ, ¸í·É¾î ¸®½ºÆ®³» ´Ù¸¥ ¸í·É¾îµéÀº ¹«½ÃµÈ´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛÇÏ´Â ¶§(´Ü¼øÈ÷ next³ª stepÀ϶§Á¶Â÷)¿¡, ¿©·¯ºÐÀÌ ´Ù¸¥ breakpoint¸¦ ¸¸³¯Áöµµ ¸ð¸£±â ¶§¹®ÀÌ´Ù.--¸ðÈ£¼ºÀ» ¾ß±âÇÒ¼ö ÀÖ´Â ÀÚ½ÅÀÇ ¸í·É¾î ¸®½ºÆ®¸¦ °¡Áú¼ö ÀÖ´Ù.

¸í·É¾î ¸®½ºÆ®¿¡ ÁöÁ¤ÇÑ Ã¹ ¸í·É¾î°¡ silentÀ̶ó¸é, breakpoint½Ã ÁßÁö¿¡ °üÇÑ ÀϹÝÀû ¸Þ¼¼Áö´Â Ãâ·ÂµÇÁö ¾Ê´Â´Ù. Ưº°ÇÑ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ´Â breakpoint¿Í continue¸¦ À§Çؼ­´Â ¹Ù¶÷Á÷ÇÏ´Ù. ³²¾Æ ÀÖ´Â ¸í·É¾îµéÀÌ ¾î¶²°Íµµ Ãâ·ÂÇÏÁö ¾Ê´Â´Ù¸é, ¿©·¯ºÐÀº breakpoint°¡ µµÂøÇÑ Ç¥½Ã¸¦ ¾Ë¼ö ¾ø´Ù. silent´Â breakpoint ¸í·É¾î ¸®½ºÆ®ÀÇ ½ÃÀ۽ÿ¡¸¸ Àǹ̸¦ °®´Â´Ù.

¸í·É¾î echo, output, ±×¸®°í printf´Â ¿©·¯ºÐÀÌ Á¤¹ÐÇÏ°Ô Ãâ·ÂÀ» Á¦¾îÇϵµ·Ï Çã¿ëÇÑ´Ù. ±×¸®°í ÀÚÁÖ Á¶¿ëÇÑ breakpoint¿¡¼­ À¯¿ëÇÏ´Ù. Ãâ·Â Á¦¾î¸¦ À§ÇÑ ¸í·É¾îµé¼½¼ÇÀ» ÂüÁ¶Çضó.

¿¹¸¦ µé¾î, ¿©±â¿¡¼­ ¿©·¯ºÐÀº x°¡ ¾ç¼öÀ϶§´Â ¾ðÁ¦³ª foo¸¦ À§ÇÑ ¿£Æ®¸®¿¡¼­ xÀÇ °ªÀ» Ãâ·ÂÇϱâ À§ÇØ breakpoint ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

break foo if x>0
commands
silent
printf "x is %d\n",x
cont
end

breakpoint ¸í·É¾î¸¦ À§ÇÑ ÀÀ¿ëÇÁ·Î±×·¥Àº ¹ö±× Çϳª¸¦ Àâ´Â´Ù. ±×·¡¼­ ¿©·¯ºÐÀÌ ´Ù¸¥°ÍÀ» Å×½ºÆ®ÇÒ¼ö ÀÖ´Ù. Äڵ忡¼­ À߸øµÈ ¶óÀÎ ´ÙÀ½¿¡ breakpoint¸¦ ¼³Á¤Çضó. ±×¸®°í ¸î¸î ¿¡·¯°¡ ³ª¿Â ´ÙÀ½¿¡ ¹ß°ßÇϱâ À§ÇÑ Á¶°ÇÀ» ÁÖ°í Àû´çÇÑ °ªÀ» ´ëÀÔÇϱâ À§ÇÑ ¸í·É¾î¸¦ ÁØ´Ù. continue ¸í·É¾î·Î ³¡³»¸é ÇÁ·Î±×·¥Àº ¸ØÃßÁö ¾ÊÀ¸¸ç silent ¸í·É¾î·Î ½ÃÀÛÇÏ¸é ¾î¶² Ãâ·Âµµ ³ªÅ¸³ªÁö ¾Ê´Â´Ù. ¿©±â¿¡ ¿¹°¡ ÀÖ´Ù:

break 403
commands
silent
set x = y + 4
cont
end

Breakpoint ¸Þ´º

¸î¸î ÇÁ·Î±×·¡¹Ö ¾ð¾î(ÁÖ·Î C++)´Â ´Ù¸¥ ¹®¸Æ¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥À» À§ÇØ, ¿©·¯¹ø Á¤ÀÇµÈ ´ÜÀÏ ÇÔ¼ö À̸§À» Çã¿ëÇÑ´Ù. À̰ÍÀº º¸Åë overloadingÀ̶ó ºÒ¸°´Ù. ÇÔ¼ö À̸§ÀÌ ¿À¹ö·ÎµùµÆÀ»¶§, `break function'´Â ¿©·¯ºÐÀÌ breakpoint¸¦ ¿øÇÏ´Â °÷À» GDB¿¡°Ô ¸»Çϱ⿡ ÃæºÐÇÏÁö ¾Ê´Ù. ¸¸ÀÏ À̰ÍÀÌ ¹®Á¦À롃 ¾È´Ù¸é, ¿©·¯ºÐÀº ¿øÇÏ´Â ÇÔ¼öÀÇ Æ¯º°ÇÑ ¹öÀüÀ» ÁöÁ¤Çϱâ À§ÇØ `break function(types)' °°Àº °ÍÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×·¸Áö ¾ÊÀ¸¸é, GDB´Â ¿©·¯ºÐÀÌ °¡´ÉÇÑ breakpoint ¼±ÅÃÀ» À§ÇØ ¿©·¯°³ÀÇ ¸Þ´º¸¦ Á¦°øÇÑ´Ù. ±×¸®°í ÇÁ·ÒÇÁÆ® `>'¿Í ÇÔ²² ¼±ÅÃÀ» ±â´Ù¸°´Ù. óÀ½ µÎ ¿É¼ÇÀº Ç×»ó `[0] cancel'¿Í `[1] all'ÀÌ´Ù. 1À» ŸÀÌÇÎÇϴ°ÍÀº °¢ functionÀÇ Á¤ÀǸ¶´Ù breakpoint¸¦ ¼³Á¤ÇÏ´Â °ÍÀ̰í 0À» ŸÀÌÇÎÇϴ°ÍÀº »õ·Î¿î breakpoint¸¦ ¼³Á¤ÇÏ´Â°Í ¾øÀÌ break ¸í·É¾î¸¦ ¶°³­´Â °ÍÀÌ´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½ ¼¼¼ÇÀÇ ¹ßÃé³»¿ëÀº ¿À¹ö·ÎµùµÈ ½Éº¼ String::after¿¡ breakpoint¸¦ ¼³Á¤Çϴ°ÍÀ» º¸¿©ÁØ´Ù. ¿ì¸®´Â ÇÔ¼ö À̸§ÀÇ 3°³ÀÇ Æ¯Á¤ Á¤ÀǸ¦ ¼±ÅÃÇß´Ù.:

(gdb) b String::after
[0] cancel
[1] all
[2] file:String.cc; line number:867
[3] file:String.cc; line number:860
[4] file:String.cc; line number:875
[5] file:String.cc; line number:853
[6] file:String.cc; line number:846
[7] file:String.cc; line number:735
> 2 4 6
Breakpoint 1 at 0xb26c: file String.cc, line 867.
Breakpoint 2 at 0xb344: file String.cc, line 875.
Breakpoint 3 at 0xafcc: file String.cc, line 846.
Multiple breakpoints were set.
Use the "delete" command to delete unwanted
 breakpoints.
(gdb)

°è¼Ó°ú ´Ü°è

Continuing´Â ÇÁ·Î±×·¥ÀÌ Á¤»óÀûÀ¸·Î ¸¶Ä¥¶§±îÁö ÇÁ·Î±×·¥ ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ¹Ý´ë·Î, stepping´Â ´ÜÁö ÇÁ·Î±×·¥¿¡¼­ Çѹø ´õ "step"À» ½ÇÇàÇÑ´Ù´Â ÀǹÌÀÌ´Ù. ¿©±â¼­ "step"Àº ¼Ò½º ÄÚµåÀÇ ÇÑ ¶óÀÎÀ̰ųª ´ÜÀÏ ±â°è ¸í·É¾î(¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ¸í·É¾î¿¡ ÀÇÁ¸ÇÑ´Ù.)Áß Çϳª¸¦ ÀǹÌÇÑ´Ù. °è¼ÓÀ̳ª ´Ü°èÁßÀ϶§, ÇÁ·Î±×·¥Àº breakpoint³ª ½ÅÈ£¶§¹®¿¡ °ð ¸ØÃâÁöµµ ¸ð¸¥´Ù. (¸¸ÀÏ ½ÅÈ£¶§¹®À̶ó¸é, ¿©·¯ºÐÀº handleÀ̳ª ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛÇϱâ À§ÇØ `signal 0'À» »ç¿ëÇÏ±æ ¿øÇÒÁö ¸ð¸¥´Ù. ½ÅÈ£µé¼½¼ÇÀ» ÂüÁ¶Çضó.)

continue [ignore-count]
c [ignore-count]
fg [ignore-count]
ÇÁ·Î±×·¥ÀÌ ¸¶Áö¸·À¸·Î ¸ØÃá ÁÖ¼Ò¿¡¼­ ÇÁ·Î±×·¥À» ´Ù½Ã ½ÃÀÛÇÑ´Ù; ±× ÁÖ¼Ò¿¡ ¼³Á¤µÈ breakpoint´Â ±×³É Áö³ª°£´Ù. ¿É¼Ç ÀÎÀÚ ignore-count´Â ¿©·¯ºÐÀÌ ÀÌ À§Ä¡¿¡¼­ breakpoint¸¦ ¹«½ÃÇϱâ À§ÇØ ´õ ¸¹Àº Ƚ¼ö¸¦ ÁöÁ¤ÇÒ¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù; À̰ÍÀº ignore¿Í °°´Ù.(Break Á¶°Çµé ¼½¼ÇÀ» ÂüÁ¶Çضó.) ÀÎÀÚ ignore-count´Â ÇÁ·Î±×·¥ÀÌ breakpoint ¶§¹®¿¡ ÁßÁöÇÒ¶§¸¸ Àǹ̰¡ ÀÖ´Ù. ´Ù¸¥¶§, continue¸¦ À§ÇÑ ÀÎÀÚµéÀº ¹«½ÃµÈ´Ù. c¿Í fg´Â ÆíÀ§¸¦ À§Çؼ­¸¸ Á¦°øµÇ¸ç continue¿Í Á¤È®È÷ °°Àº ÇൿÀ» ÇÑ´Ù.

´Ù¸¥ À§Ä¡¿¡¼­ ½ÇÇàÀ» ´Ù½Ã ½ÃÀÛÇϱâ À§ÇØ, ¿©·¯ºÐÀº È£Ãâ ÇÔ¼ö·Î ´Ù½Ã °¡±â À§ÇØ return(ÇÔ¼ö¿¡¼­ ¸®ÅÏ ¼½¼ÇÀ» ÂüÁ¶Çضó.)À» »ç¿ëÇÒ¼ö ÀÖ´Ù.; ¶Ç´Â ÇÁ·Î±×·¥ÀÇ ÀÓÀÇÀÇ À§Ä¡·Î °¡±â À§ÇØ jump(´Ù¸¥ ÁÖ¼Ò¿¡¼­ °è¼ÓÇϱ⼽¼ÇÀ» ÂüÁ¶Çضó.)¸¦ »ç¿ëÇØ¶ó.

steppingÀ» »ç¿ëÇÏ´Â ÀüÇüÀûÀÎ ±â¼úÀº ÇÔ¼öÀÇ ½ÃÀÛÀ̳ª ¹®Á¦°¡ ÀÖ´Â ÇÁ·Î±×·¥ ¼½¼Ç¿¡ breakpoint(Breakpoints, watchpoints, ±×¸®°í exceptions ¼½¼ÇÀ» ÂüÁ¶Çضó.)¸¦ ¼³Á¤ÇÏ´Â °ÍÀÌ´Ù. ±×¸®°í breakpoint¿¡¼­ ¸ØÃâ¶§±îÁö ÇÁ·Î±×·¥À» µ¹¸®°í Àǽɽº·¯¿î À§Ä¡¿¡¼­ stepÀ» ¹à¾Æ°¡°í ÇÁ·Î±×·¥¿¡ ¹®Á¦°¡ ¹ß»ýÇÒ¶§±îÁö Èï¹Ì°¡ ÀÖ´Â º¯¼ö¸¦ °Ë»çÇÏ´Â °ÍÀÌ´Ù.

step
Á¦¾î°¡ ´Ù¸¥ ¼Ò½º ¶óÀο¡ µµÂøÇÒ¶§±îÁö ÇÁ·Î±×·¥ ½ÇÇàÀ» °è¼ÓÇÑ´Ù. ±×¸®°í ¸ØÃß°í Á¦¾î¸¦ ´Ù½Ã GDB¿¡°Ô µ¹¸°´Ù. ÀÌ ¸í·É¾î´Â °£´ÜÈ÷ sÀÌ´Ù.

°æ°í: ¸¸ÀÏ ¿©·¯ºÐÀÌ µð¹ö±ë Á¤º¸ ¾øÀÌ ÄÄÆÄÀÏµÈ ÇÔ¼ö³»¿¡ Á¦¾î°¡ ÀÖ´Â µ¿¾È¿¡ step ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù¸é, ½ÇÇàÀº Á¦¾î°¡ µð¹ö±ë Á¤º¸¸¦ °¡Áö°í ÀÖ´Â ÇÔ¼ö¿¡ µµÂøÇÒ¶§±îÁö °è¼ÓµÈ´Ù. °Ô´Ù°¡, µð¹ö±ë Á¤º¸ ¾øÀÌ ÄÄÆÄÀÏ µÈ ÇÔ¼ö³»·Î´Â stepµÇÁö ¾Ê´Â´Ù. µð¹ö±ë Á¤º¸ ¾ø´Â ÇÔ¼ö³»·Î stepÇϱâ À§Çؼ­´Â stepi¸¦ »ç¿ëÇØ¶ó.

step ¸í·É¾î´Â ¼Ò½º ¶óÀÎÀÇ Ã¹ ¸í·É¾î¿¡¼­¸¸ ¸ØÃá´Ù. À̰ÍÀº ·çÆ®µî switch¹®¿¡¼­ ÀϾ¼ö ÀÖ´Â ¿©·¯¹ø Á¤Áö¸¦ ¸·´Â´Ù. step´Â µð¹ö±ë Á¤º¸¸¦ °¡Áö°í ÀÖ´Â ÇÔ¼ö°¡ ¶óÀγ»¿¡¼­ ºÒ·ÁÁø´Ù¸é ÁßÁö¸¦ À§ÇØ °è¼ÓÇÑ´Ù. ¶ÇÇÑ, step´Â ¼­ºê·çƾÀ» À§ÇÑ ¶óÀγѹö Á¤º¸°¡ ÀÖ´Ù¸é ¼­ºê·çƾÀ¸·Î µé¾î°£´Ù. ±×·¸Áö ¾ÊÀ¸¸é ÀÌ ¸í·É¾î´Â nextó·³ ÇൿÇÑ´Ù. À̰ÍÀº MIPS ¸Ó½Å¿¡¼­ cc -gl¸¦ »ç¿ëÇÒ¶§ÀÇ ¹®Á¦µéÀ» ÇÇÇÒ¼ö ÀÖ´Ù. Àü¿¡, step´Â ·çƾ¿¡ °üÇÑ µð¹ö±ë Á¤º¸°¡ ÀÖ´Ù¸é ¼­ºê·çƾÀ¸·Î µé¾î°£´Ù.
step count
step¿¡¼­ ó·³ °è¼Ó ½ÇÇàµÇÁö¸¸, count¹ø ¸¸Å­ ÇÑ´Ù. ¸¸ÀÏ breakpoint°¡ µµ´ÞÇϰųª step°ú °ü·Ã¾ø´Â ½ÅÈ£°¡ count¹ø Àü¿¡ ¹ß»ýÇÑ´Ù¸é, steppintÀº ¹Ù·Î ¸ØÃá´Ù.
next [count]
ÇöÀç(°¡Àå ¾ÈÂÊ) ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ´ÙÀ½ ¼Ò½º¶óÀÎÀ¸·Î °è¼ÓÇØ¶ó. À̰ÍÀº step°ú ºñ½ÁÇÏÁö¸¸, ÇÔ¼ö ÄÚ½ºÀÇ ¶óÀξȿ¡ ³ªÅ¸³ª´Â ÇÔ¼ö È£ÃâÀº ÁßÁö¾øÀÌ ½ÇÇàµÈ´Ù. ½ÇÇàÀº Á¦¾î°¡ ¿ø·¡ ½ºÅà ·¹º§¿¡¼­ ÄÚµåÀÇ ´Ù¸¥ ¶óÀο¡ µµÂø ÇÒ¶§ ¸ØÃß¸ç ¿©·¯ºÐÀÌ next ¸í·É¾î¸¦ »ç¿ëÇÒ¶§ ½ÇÇàÇÑ´Ù. ÀÌ ¸í·É¾î´Â nÀ¸·Î Ãà¾àÇÒ¼ö ÀÖ´Ù. ÀÎÀÚ count´Â stepó·³ ¹Ýº¹ Ƚ¼öÀÌ´Ù. next¸í·É¾î´Â ¼Ò½º¶óÀÎÀÇ Ã¹ ¸í·É¾î¿¡¼­ ¸ØÃá´Ù. À̰ÍÀº ·çÇÁ µî switch ¹®¿¡¼­ ¹ß»ýÇÏ´Â ´ÙÁß Á¤Áö¸¦ ¸·´Â´Ù.
finish
¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡ ÀÖ´Â ÇÔ¼ö°¡ ¹ÝȯÇÒ¶§±îÁö ½ÇÇàÀ» °è¼ÓÇÑ´Ù. ¸®ÅϰªÀ» Ãâ·ÂÇÑ´Ù. return ¸í·É¾î¿Í À̰ÍÀº ´ëÁ¶ÀûÀÌ´Ù.(ÇÔ¼ö¿¡¼­ ¹Ýȯ ¼½¼ÇÀ» ÂüÁ¶Çضó.)
u
until
ÇöÀç ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ¼Ò½º ¶óÀÎÀÌ ÇöÀç ¶óÀο¡ µµÂøÇÒ¶§±îÁö ½ÇÇàÀ» °è¼ÓÇÑ´Ù. ÀÌ ¸í·É¾î´Â Çѹø ÀÌ»ó ·çÇÁ¸¦ ÅëÇØ ´ÜÀÏ steppingÀ» ÇÇÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ÀÌ ¸í·É¾î´Â untilÀÌ ºÐ±â¸¦ ¸¸³¯¶§¸¦ Á¦¿ÜÇϰí next ¸í·É¾î¿Í °°À¸¸ç ÀÚµ¿ÀûÀ¸·Î ÇÁ·Î±×·¥ Ä«¿îÅͰ¡ ºÐ±â ÁÖ¼Òº¸´Ù Ŭ¶§±îÁö ½ÇÇàÀ» °è¼ÓÇÑ´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ ´ÜÀÏ steppingÀÌ À̰÷À» Åë°úÇÑÈÄ ·çÇÁÀÇ ³¡¿¡ µµÂøÇÒ¶§¸¦ ÀǹÌÇϸç, untilÀº ·çÇÁ¸¦ Á¾·áÇÒ¶§±îÁö ÇÁ·Î±×·¥ ½ÇÇàÀ» °è¼ÓÇϵµ·Ï ¸¸µç´Ù. ´ëÁ¶ÀûÀ¸·Î, ·çÇÁÀÇ ³¡¿¡¼­ next¸í·É¾î´Â ·çÇÁÀÇ ½ÃÀÛÀ¸·Î ´Ù½Ã ³ª¾Æ°¡ ¸ç ¿©·¯ºÐÀº ´ÙÀ½ ¹Ýº¹À» ÅëÇØ °­Á¦ÀûÀ¸·Î ³ª¾Æ°¥¼ö ÀÖ´Ù. untilÀº Ç×»ó ÇöÀç ½ºÅà ÇÁ·¹ÀÓÀ» Á¾·áÇÑ´Ù¸é ÇÁ·Î±×·¥À» ¸ØÃá´Ù. until´Â ±â°è ÄÚµåÀÇ ¼ø¼­°¡ ¼Ò½º ¶óÀÎÀÇ ¼ø¼­¿Í ¸ÂÁö ¾Ê´Ù¸é ´Ù¼Ò ¹ÝÁ÷°üÀûÀÎ °á°ú¸¦ ³º´Â´Ù. ¿¹¸¦ µé¾î, µð¹ö±ë ¼¼¼Ç¿¡¼­ÀÇ ´ÙÀ½ ¹ßÃë¿¡¼­, f(frame) ¸í·É¾î´Â ½ÇÇàÀÌ ¶óÀÎ 206¿¡¼­ ¸ØÃß¾ú´Ù´Â°ÍÀ» º¸¿©ÁØ´Ù; ¿ì¸®°¡ untilÀ» »ç¿ëÇÒ¶§, 195À» °®´Â´Ù.
(gdb) f
#0  main (argc=4, argv=0xf7fffae8) at m4.c:206
206                 expand_input();
(gdb) until
195             for ( ; argc > 0; NEXTARG) {
À̰ÍÀº ½ÇÇà È¿À²¼º¶§¹®¿¡ ÄÄÆÄÀÏ·¯°¡ ½ÃÀÛº¸´Ù ·çÇÁÀÇ ³¡¿¡¼­ ·çÇÁ¸¦ ´Ýµµ·Ï Äڵ带 ¸¸µé±â ¶§¹®ÀÌ´Ù.--C for-·çÇÁ¿¡¼­ÀÇ Å×½ºÆ®´Â ·çÇÁÀÇ º»Ã¼Àü¿¡ ¾²¿©Á³´Ù. until¸í·É¾î´Â ÀÌ Ç¥Çö½ÄÀ¸·Î ³ª¾Æ°¥¶§ ·çÇÁÀÇ ½ÃÀÛÀ¸·Î ´Ù½Ã ³ª¾Æ°¥¶§ ³ªÅ¸³­´Ù.; ±×·¯³ª Ãʱ⠹®ÀåÀ¸·Î °¡Áö´Â ¾Ê´Â´Ù--½ÇÁ¦ ±â°è ÄÚµå ÀÇ ±¸°£¿¡¼­°¡ ¾Æ´Ï¶ó. ÀÎÀÚ°¡ ¾ø´Â until´Â ´ÜÀÏ ¸í·É¾î steppingÀÇ ¼ö´ÜÀ¸·Î ÀÛµ¿ÇÑ´Ù. ±×·¡¼­ ÀÎÀÚ°¡ ÀÖ´Â untilº¸´Ù ´À¸®´Ù.
until location
u location
ÁöÁ¤µÈ À§Ä¡¿¡ µµÂøÇϵçÁö ÇöÀç ½ºÅà ÇÁ·¹ÀÓÀÌ ¹ÝȯµÉ¶§±îÁö ÇÁ·Î±×·¥ ½ÇÇàÀ» °è¼ÓÇÑ´Ù. location´Â break¿¡¼­ ¹Þ¾ÆµéÀϼö ÀÖ´Â ÀÎÀÚ ÇüÅÂÀÌ´Ù.(Setting breakpoints ¼½¼ÇÀ» ÂüÁ¶Çضó.) ¸í·É¾î ÇüÅ´ breakpoint¸¦ »ç¿ëÇÑ´Ù. ±×·¡¼­ ÀÎÀÚ°¡ ¾øÀ»°æ¿ì until ºü¸£´Ù.
stepi
si
ÇѰ³ÀÇ ±â°è ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù. ±×¸®°í ¸ØÃß°í µð¹ö°Å·Î ¸®ÅÏÇÑ´Ù. ±â°è ¸í·É¾î¿¡ ÀÇÇØ steppingÇÒ¶§ `display/i $pc'À» Çϴ°ÍÀº ÀÚÁÖ À¯¿ëÇÏ´Ù. À̰ÍÀº ÇÁ·Î±×·¥ÀÌ ¸ØÃâ¶§¸¶´Ù GDB°¡ ÀÚµ¿ÀûÀ¸·Î ½ÇÇàÇØ¾ßÇÒ ´ÙÀ½ ¸í·É¾î¸¦ º¸¿©ÁØ´Ù. ÀÚµ¿ µð½ºÇ÷¹ÀÌ ¼½¼ÇÀ» ÂüÁ¶Çضó. ÀÎÀÚ´Â stepó·³ ¹Ýº¹ Ƚ¼öÀÌ´Ù.
nexti
ni
ÇѰ³ÀÇ ±â°è ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù. ±×·¯³ª ¸¸ÀÏ ÇÔ¼ö È£ÃâÀ̶ó¸é ÇÔ¼ö°¡ ¹ÝȯÇÒ¶§±îÁö ÇÑ´Ù. ÀÎÀÚ´Â nextó·³ ¹Ýº¹¼öÀÌ´Ù.

½ÅÈ£µé

½ÅÈ£´Â ÇÁ·Î±×·¥³» ¹ß»ýÇÏ´Â ºñµ¿±âÀû »ç°ÇÀÌ´Ù. OS´Â °¡´ÉÇÑ Á¾·ùÀÇ ½ÅÈ£¸¦ Á¤ÀÇÇÏ¸ç °¢ Á¾·ùÀÇ À̸§°ú ¼ýÀÚ¸¦ ÁØ´Ù. ¿¹¸¦ µé¾î, Unix¿¡¼­ SIGINT´Â ¿©·¯ºÐÀÌ ÀÎÅÍ·´Æ®¸¦ ŸÀÌÇÎ(C-c)ÇÒ¶§ ÇÁ·Î±×·¥ÀÌ °®´Â ½ÅÈ£ÀÌ´Ù.; SIGSEGV´Â »ç¿ëÇÒ¼ö ÀÖ´Â ¸Þ¸ð¸® ¿µ¿ª ÀÌ¿ÜÀÇ Àå¼Ò¸¦ ÂüÁ¶ÇÒ¶§ ÇÁ·Î±×·¥ÀÌ °®´Â ½ÅÈ£ÀÌ´Ù.; SIGALRM´Â alarm Ŭ·° ŸÀ̸Ӱ¡ ²¨Áú¶§ »ý±ä´Ù. (¸¸ÀÏ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ¾Ë¶÷À» °¡Áø°æ¿ì¿¡¸¸)

SIGALRMÀ» Æ÷ÇÔÇÑ ¸î¸î ½ÅÈ£µéÀº ÇÁ·Î±×·¥ ÇÔ¼öµéÁß ÀϺκÐÀÌ´Ù. SIGSEGV ó·³, ´Ù¸¥°ÍµéÀº ¿¡·¯¸¦ °¡¸®Å²´Ù.; ÀÌµé ½ÅÈ£´Â ¹Ì¸® ÀÌµé ½ÅÈ£¸¦ ó¸®ÇÏ´Â ´Ù¸¥ ¹æ¹ýÀ» ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é Ä¡¸íÀû(ÇÁ·Î±×·¥Àº Áï½Ã Á״´Ù)ÀÌ´Ù. SIGINT´Â ÇÁ·Î±×·¥¿¡¼­ ¿¡·¯¸¦ °¡¸®Å°´Â°ÍÀº ¾Æ´ÏÁö¸¸ º¸Åë Ä¡¸íÀûÀ̾ ÇÁ·Î±×·¥À» Á×À̱â À§ÇÑ ÀÎÅÍ·´Æ®ÀÇ ¸ñÀûÀ¸·Î ½ÇÇàÇÑ´Ù.

GDB´Â ÇÁ·Î±×·¥³» ½ÅÈ£ÀÇ ¹ß»ýÀ» ¹ß°ßÇÒ ´É·ÂÀÌ ÀÖ´Ù. ¿©·¯ºÐÀº ½ÅÈ£ÀÇ Á¾·ù ¸¶´Ù ÇØ¾ßÇÒ°ÍÀ» ¹Ì¸® GDB¿¡°Ô ¸»ÇÒ¼ö ÀÖ´Ù.

º¸Åë, GDB´Â ¿¡·¯½ÅÈ£°¡ ¹ß»ýÇÒ¶§¸¶´Ù Áï½Ã ÇÁ·Î±×·¥À» ¸ØÃß°Ô Çϱâ À§Çؼ­ SIGALRM°ú °°Àº ¿¡·¯°¡ ¾Æ´Ñ ½ÅÈ£µéÀº ¹«½ÃÇϵµ·Ï ¼³Á¤ÇÑ´Ù. (ÇÁ·Î±×·¥ÀÇ ÇÔ¼ö³» ¿ªÇÒÀ» ¹æÇØÇÏÁö ¾Ê´Â ÇÑ) ¿©·¯ºÐÀº handle¸í·É¾î¸¦ °¡Áö°í ÀÌµé ¼³Á¤À» ¹Ù²Ü¼ö ÀÖ´Ù.

info signals
½ÅÈ£ÀÇ Á¾·ù¿Í °¢ ½ÅÈ£¸¶´Ù GDB°¡ ó¸®ÇؾßÇÒ ¹æ¹ý¿¡ ´ëÇÑ Å×À̺íÀ» ¸ðµÎ º¸¿©ÁØ´Ù. ¿©·¯ºÐÀº Á¤ÀÇµÈ ½ÅÈ£ ŸÀÔÀÇ ½ÅÈ£ ³Ñ¹ö¸¦ ¸ðµÎ º¸±â À§ÇØ ÀÌ ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. info handle´Â info signals¿¡ ´ëÇÑ º°¸íÀÌ´Ù.
handle signal keywords...
GDB°¡ ½ÅÈ£ signal¸¦ ó¸®ÇÏ´Â ¹æ¹ýÀ» ¹Ù²Û´Ù. signal´Â ½ÅÈ£ÀÇ ¼ýÀÚ³ª À̸§(½ÃÀ۽à `SIG'¸¦ °¡Áöµç °¡ÁöÁö ¾Êµç)Àϼö ÀÖ´Ù. keywords´Â ¸¸µé±â À§ÇØ ¹Ù²Ù¾î¾ßÇÒ°ÍÀÌ ¹«¾ù ÀÎÁö¸¦ ¸»ÇÑ´Ù.

handle ¸í·É¾î¿¡ ÀÇÇØ Çã¿ëµÇ´Â Ű¿öµå´Â ÁÙÀϼö ÀÖ´Ù. ¿ÏÀüÇÑ À̸§Àº:

nostop
GDB´Â ½ÅÈ£°¡ ¹ß»ýÇÒ¶§ ÇÁ·Î±×·¥À» ¸ØÃßÁö ¾Ê´Â´Ù. ¿©ÀüÈ÷ ½ÅÈ£°¡ ¿ÔÀ»¶§ ¿©·¯ºÐ¿¡°Ô ¸»ÇÒ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ´Ù.
stop
GDB´Â ½ÅÈ£°¡ ¹ß»ýÇÒ¶§ ÇÁ·Î±×·¥À» ¸ØÃá´Ù. À̰ÍÀº ¿ª½Ã print Ű¿öµå ¸¦ ¾Ï½ÃÇÑ´Ù.
print
GDB´Â ½ÅÈ£°¡ ¹ß»ýÇÒ¶§ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÑ´Ù.
noprint
GDB´Â ½ÅÈ£ÀÇ ¹ß»ý¿¡ ´ëÇØ ¾ð±ÞÇÏÁö ¾Ê´Â´Ù. À̰ÍÀº ¿ª½Ã nostop Ű¿öµå ¸¦ ¾Ï½ÃÇÑ´Ù.
pass
GDB´Â ÀÌµé ½ÅÈ£¸¦ º¼¼ö ÀÖµµ·Ï ÇÁ·Î±×·¥À» Çã¿ëÇÑ´Ù; ÇÁ·Î±×·¥Àº ÀÌ ½ÅÈ£¸¦ ó¸®Çϰųª ±×·¸Áö ¾ÊÀ¸¸é ½ÅÈ£°¡ Ä¡¸íÀûÀ̰í 󸮵ÇÁö ¾Ê´Â´Ù¸é Á¾·áµÈ´Ù.
nopass
GDB´Â ÀÌ ½ÅÈ£¸¦ º¸µµ·Ï ÇÁ·Î±×·¥¿¡°Ô Çã¿ëÇÏÁö ¾Ê´Â´Ù.

½ÅÈ£°¡ ÇÁ·Î±×·¥À» ¸ØÃâ¶§, ½ÅÈ£´Â ¿©·¯ºÐÀÌ continueÇÒ¶§±îÁö º¼¼ö ¾ø´Ù. ¸¸ÀÏ pass°¡ ±×¶§ ½ÅÈ£ÀÇ ¿µÇâÇÏ¿¡ ÀÖ´Ù¸é ÇÁ·Î±×·¥Àº ½ÅÈ£¸¦ º¼¼ö ÀÖ´Ù. Áï, GDB°¡ ½ÅÈ£¸¦ º¸°íÇÑÈÄ ¿©·¯ºÐÀÌ continueÇÒ¶§ ÇÁ·Î±×·¥ÀÌ ½ÅÈ£¸¦ º¼¼ö ÀÖ´ÂÁö ¾ø´ÂÁö¸¦ Á¦¾îÇϱâ À§ÇØ pass³ª nopass ¸í·É¾î¿Í ÇÔ²² handleÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù.

¿©·¯ºÐÀº ¶ÇÇÑ ÇÁ·Î±×·¥ÀÌ ½ÅÈ£¸¦ º¸´Â°É ¸·±â À§Çؼ­³ª º¼¼ö ¾ø´Â ½ÅÈ£¸¦ º¸µµ·Ï Çϰųª ¾î¶²¶§µçÁö ½ÅÈ£À» ÁÖµµ·Ï Çϱâ À§ÇØ signal ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ÇÁ·Î±×·¥ÀÌ ¸Þ¸ð¸® ÂüÁ¶ ¿¡·¯¶§¹®¿¡ ¸ØÃá´Ù¸é, ¿©·¯ºÐÀº ´õ ½ÇÇà µÇ±æ ¿øÇؼ­ Á¤È®ÇÑ °ªÀ» ¿¡·¯ º¯¼ö¿¡ ³Ö°í continueÇÒ¼ö ÀÖ´Ù.;±×·¯³ª ÇÁ·Î±×·¥Àº ¾Æ¸¶ ½ÅÈ£¸¦ º¸ÀÚ ¸¶ÀÚ Ä¡¸íÀû ½ÅÈ£ÀÇ °á°úó·³ Áï½Ã Á×À» °ÍÀÌ´Ù. À̰ÍÀ» ¸·±â À§ÇØ, ¿©·¯ºÐÀº `signal 0'À» °¡Áö°í °è¼ÓÇØ¾ß ÇÑ´Ù. ÇÁ·Î±×·¥¿¡ ½ÅÈ£ Áֱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥ÀÇ ÁßÁö¿Í ½ÃÀÛ

¿©·¯ºÐÀÌ ´ÙÁß ¾²·¹µå¸¦ °¡Áú¶§(´ÙÁß ¾²·¹µå ÇÁ·Î±×·¥ µð¹ö±ëÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.), ¿©·¯ºÐÀº ¸ðµç ¾²·¹µå³ª ƯÁ¤ ¾²·¹µå¿¡ breakpoint¸¦ ¼³Á¤ÇÒÁö ¾ÈÇÒÁö¸¦ ¼±ÅÃÇÒ¼ö ÀÖ´Ù.

break linespec thread threadno
break linespec thread threadno if ...
linespec´Â ¼Ò½º ¶óÀÎÀ» ÁöÁ¤ÇÑ´Ù.; ±×°ÍµéÀ» ¾²´Â ¸î°¡Áö ¹æ¹ýÀÌ ÀÖÁö¸¸ È¿°ú´Â ¸î¸î ¼Ò½º ¶óÀÎÀ» Ç×»ó ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. ¿©·¯ºÐÀº ƯÁ¤ ¾²·¹µå°¡ ÀÌ breakpoint¿¡ µµÂøÇÒ¶§ ÇÁ·Î±×·¥ÀÌ ¸ØÃß±æ ¿øÇϸé breakpoint ¸í·É¾î¿Í ÇÔ²² `thread threadno'¸¦ »ç¿ëÇØ¶ó. threadno´Â `info threads' Ãâ·ÂÀÇ Ã³À½ Ä®·³¿¡¼­ º¸¿©Áø °Íó·³ GDB¿¡ ÀÇÇØ ´ëÀÔµÈ ¾²·¹µå ½Äº°ÀÚÁß ÇϳªÀÌ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ breakpoint¸¦ ¼³Á¤ÇÒ¶§ `thread threadno'¸¦ ÁöÁ¤ÇÏÁö ¾Ê´Â´Ù¸é, breakpoint´Â ÇÁ·Î±×·¥ÀÇ ¸ðµç ¾²·¹µå¿¡ Àû¿ëµÈ´Ù. ¿©·¯ºÐÀº ¿ª½Ã Á¶°ÇÀû breakpoint¿¡¼­ thread ½Äº°ÀÚ¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ; ÀÌ·± °æ¿ì, ´ÙÀ½Ã³·³ breakpoint Á¶°Ç Àü¿¡ `thread threadno'¸¦ ³õ¾Æ¶ó.
(gdb) break frik.c:13 thread 28 if bartab > lim

ÇÁ·Î±×·¥ÀÌ ¾î¶² ÀÌÀ¯¶§¹®¿¡ GDBÇÏ¿¡¼­ ¸ØÃß¾ú´Ù¸é, ÇöÀç ¾²·¹µå¸¸ÀÌ ¾Æ´Ï¶ó ½ÇÇàÁßÀÎ ¸ðµç ¾²·¹µå´Â ¸ØÃá´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ º¯°æµÉ°Íµé¿¡ ´ëÇØ °ÆÁ¤¾øÀÌ ¾²·¹µå¸¦ ¹Ù²Ù´Â°É Æ÷ÇÔÇÏ¿© ÇÁ·Î±×·¥ÀÇ ÀüüÀûÀÎ »óŸ¦ °Ë»çÇϵµ·Ï Çã¿ëÇÑ´Ù.

°Å²Ù·Î, ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥À» ´Ù½Ã ½ÃÀÛÇÒ¶§ ¸ðµç ¾²·¹µå´Â ½ÇÇàÀ» ½ÃÀÛÇÑ´Ù. À̰ÍÀº stepÀ̳ª next°°Àº ¸í·É¾î¸¦ °¡Áö°í ´ÜÀÏ steppingÀ» ÇÒ¶§µµ »ç½ÇÀÌ´Ù.

Ưº°È÷, GDB´Â À¶Å뼺 ¾øÀÌ ¸ðµç ¾²·¹µå¿¡ ´ÜÀÏ steppingÀ» ÇÒ¼ö ¾ø´Ù. ¾²·¹µå ½ºÄÉÁÙ¸µÀ» ÇÏ´Â °ÍÀº µð¹ö±ëÇϴ Ÿ°Ù OS(GDB¿¡ ÀÇÇØ Á¦¾îµÇÁö ¾Ê´Â´Ù.)À̱⠶§¹®¿¡, ´Ù¸¥ ¾²·¹µåµéÀº ÇöÀç ¾²·¹µå°¡ ´ÜÀÏ stepÀ» ¿Ï¼ºÇÏ´Â µ¿¾È ÇÑ ¹®Àå ´õ ½ÇÇàÇÑ´Ù. °Ô´Ù°¡, ÀϹÝÀûÀ¸·Î ´Ù¸¥ ¾²·¹µå´Â ÇÁ·Î±×·¥ÀÌ ¸ØÃâ¶§ ¹®Àå °æ°è¸¦ û¼ÒÇϱ⠺¸´Ù´Â ¹®Àå Áß°£¿¡ ¸ØÃá´Ù.

¿©·¯ºÐÀº continue³ª ´ÜÀÏ-steppingÈÄ ´Ù¸¥ ¾²·¹µå¿¡¼­ ¸ØÃá ÇÁ·Î±×·¥À» ¹ß°ßÇÒ¼ö ÀÖ´Ù. À̰ÍÀº óÀ½ ¾²·¹µå°¡ ¿©·¯ºÐÀÇ ¿ä±¸¸¦ ¸¶Ä¡±â Àü¿¡ ¸î¸î ´Ù¸¥ ¾²·¹µå°¡ breakpoint, ½ÅÈ£ ¶Ç´Â ¿¹¿Ü½Ã¿¡ µ¹¾Æ°¥¶§ ÀϾ´Ù.

½ºÅà °Ë»çÇϱâ

ÇÁ·Î±×·¥ÀÌ ¸ØÃß¾úÀ»¶§, ¿©·¯ºÐÀÌ ¾Ë¾Æ¾ßÇÒ Ã¹¹øÂ°´Â ÇÁ·Î±×·¥ÀÌ ¸ØÃá°÷ÀÌ ¾îµðÀÌ°í °Å±â¸¦ °®´Â ¹æ¹ýÀÌ´Ù.

ÇÁ·Î±×·¥ÀÌ ÇÔ¼ö È£ÃâÀ» ÇÒ¶§¸¶´Ù È£Ãâ¿¡ °üÇÑ Á¤º¸°¡ ¸¸µé¾îÁø´Ù. ±× Á¤º¸´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ È£ÃâÀÇ À§Ä¡¿Í È£Ãâ ÀÎÀÚ ±×¸®°í È£ÃâµÈ ÇÔ¼öÀÇ Áö¿ª º¯¼öµéÀ» Æ÷ÇÔÇÑ´Ù. Á¤º¸´Â ½ºÅà ÇÁ·¹ÀÓ À̶ó ºÒ¸®´Â µ¥ÀÌÅÍ ºí·°¿¡ ÀúÀåµÈ´Ù. ½ºÅà ÇÁ·¹ÀÓÀº ÄÝ ½ºÅà À̶ó ºÒ¸®´Â ¸Þ¸ð¸® ¿µ¿ª¿¡ ´ëÀԵȴÙ.

ÇÁ·Î±×·¥ÀÌ ¸ØÃß¾úÀ»¶§, ½ºÅÃÀ» °Ë»çÇÏ´Â GDB ¸í·É¾îµéÀº ¿©·¯ºÐÀÌ ÀÌ Á¤º¸ ¸ðµÎ¸¦ º¼¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.

½ºÅà ÇÁ·¹ÀÓÁß Çϳª°¡ GDB¿¡ ÀÇÇØ selected µÇ°í ¸¹Àº GDB ¸í·É¾îµéÀÌ ¼±ÅÃµÈ ÇÁ·¹ÀÓÀ» °¡¸®Å²´Ù. Ưº°È÷, ¿©·¯ºÐÀÌ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡ ÀÖ´Â º¯¼öÀÇ °ªÀ» GDB ¿¡ ¹°¾îº¼¶§¸¶´Ù ±× °ªÀº ¼±ÅÃµÈ ÇÁ·¹ÀÓ¿¡¼­ ¹ß°ßµÈ´Ù. ¿©±â¿¡´Â ¿©·¯ºÐÀÌ Èï¹Ì·Î¿öÇÏ´Â ÇÁ·¹ÀÓÀ» ¼±ÅÃÇÒ¼ö Àִ Ưº°ÇÑ GDB ¸í·É¾îµéÀÌ ÀÖ´Ù. ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

ÇÁ·Î±×·¥ÀÌ ¸ØÃß¾úÀ»¶§, GDB´Â ÀÚµ¿ÀûÀ¸·Î ÇöÀç ½ÇÇàµÇ´Â ÇÁ·¹ÀÓÀ» ¼±ÅÃÇϸç frame ¸í·É¾î¿Í ºñ½ÁÇÏ°Ô °£´ÜÈ÷ ±â¼úÇÑ´Ù. (ÇÁ·¹ÀÓ¿¡ °üÇÑ Á¤º¸ ¼½¼ÇÀ» ÂüÁ¶Çضó.)

½ºÅà ÇÁ·¹ÀÓ

ÄÝ ½ºÅÃÀº stack frames ¶Ç´Â °£´ÜÈ÷ frames ¶ó ºÒ¸®´Â ¿¬¼ÓÀûÀÎ Á¶°¢À¸·Î ³ª´©¾îÁø´Ù.; °¢ ÇÁ·¹ÀÓÀº ÇϳªÀÇ ÇÔ¼ö¿¡ ÇϳªÀÇ È£ÃâÀÌ °ü·ÃµÈ µ¥ÀÌÅÍÀÌ´Ù. ÇÁ·¹ÀÓÀº ÇÔ¼ö¿¡ ÁÖ¾îÁö´Â ÀÎÀÚ¿Í ÇÔ¼öÀÇ Áö¿ª º¯¼öµé ±×¸®°í ÇÔ¼ö°¡ ½ÇÇàÇÏ´Â ÁÖ¼Ò¸¦ Æ÷ÇÔÇÑ´Ù.

¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ¶§, ½ºÅÃÀº ´ÜÁö main ÇÔ¼ö ÇϳªÀÇ ÇÁ·¹ÀÓ¸¸ °¡Áö°í ÀÖ´Ù. À̰ÍÀº initial ÇÁ·¹ÀÓÀ̳ª outermost ÇÁ·¹ÀÓÀ̶ó ºÒ¸°´Ù. ÇÔ¼ö°¡ È£ÃâµÉ¶§¸¶´Ù, »õ·Î¿î ÇÁ·¹ÀÓÀº ¸¸µé¾îÁø´Ù. ÇÔ¼ö°¡ ¹ÝȯµÉ¶§¸¶´Ù, ÇÔ¼ö È£ÃâÀ» À§ÇÑ ÇÁ·¹ÀÓÀº Á¦°ÅµÈ´Ù. ÇÔ¼ö°¡ Àç±ÍÀûÀ̶ó¸é, °°Àº ÇÔ¼ö¸¦ À§ÇÑ ¸¹Àº ÇÁ·¹ÀÓÀÌ ÀÖÀ»¼ö ÀÖ´Ù. ½ÇÁ¦·Î ½ÇÇà½Ã ¹ß»ýÇÏ´Â ÇÔ¼ö¸¦ À§ÇÑ ÇÁ·¹ÀÓÀº innermost ÇÁ·¹ÀÓÀ̶ó ºÒ¸°´Ù. À̰ÍÀº ¿©ÀüÈ÷ Á¸ÀçÇÏ´Â ¸ðµç ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ °¡Àå ÃÖ±Ù¿¡ »ý¼ºµÈ °ÍÀÌ´Ù.

ÇÁ·Î±×·¥ ³»¿¡¼­, ½ºÅà ÇÁ·¹ÀÓÀº ÁÖ¼Ò¿¡ ÀÇÇØ ½Äº°µÈ´Ù. ½ºÅà ÇÁ·¹ÀÓÀº ¸¹Àº ¹ÙÀÌÆ®µé·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç °¢°¢Àº ÀÚ½ÅÀÇ ÁÖ¼Ò¸¦ °¡Áö°í ÀÖ´Ù; ÄÄÇ»ÅÍ °¢ Á¾·ù´Â ÇÁ·¹ÀÓ Áּҷνá Á¦°øµÇ´Â ÁÖ¼Ò ÇÑ ¹ÙÀÌÆ®¸¦ ¼±ÅÃÇÒ¼ö ÀÖ´Ù. º¸Åë ÀÌ ÁÖ¼Ò´Â ½ÇÇàÀÌ ±× ÇÁ·¹ÀÓ³»¿¡ ÀÖ´Â µ¿¾È frame pointer register À̶ó ºÒ¸®´Â ·¹Áö½ºÅÍ¿¡¼­ À¯ÁöµÈ´Ù.

GDB´Â innermost ÇÁ·¹ÀÓÀ» À§ÇØ 0À¸·Î ½ÃÀÛÇÏ¿©, È£ÃâµÇ´Â ÇÁ·¹ÀÓÀ» À§ÇØ 1·Î ±×¸®°í »óÀ§·Î µîµîÀ¸·Î Á¸ÀçÇÏ´Â ½ºÅà ÇÁ·¹ÀÓ ¸ðµÎ¸¦ À§ÇØ ¼ýÀÚ¸¦ ´ëÀÔÇÑ´Ù. ÀÌµé ¼ö´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ ½ÇÁ¦·Î Á¸ÀçÇÏÁö´Â ¾Ê´Â´Ù; ÀÌµé ¼ö´Â GDB ¸í·É¾î ³»¿¡¼­ ½ºÅà ÇÁ·¹ÀÓÀ» °í¾ÈÇÑ ¹æ¹ýÀ» ¿©·¯ºÐ¿¡°Ô ÁÖµµ·Ï GDB¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù.

¸î¸î ÄÄÆÄÀÏ·¯´Â ½ºÅà ÇÁ·¹ÀÓ ¾øÀÌ ÀÛµ¿Çϵµ·Ï ÇÔ¼ö¸¦ ÄÄÆÄÀÏÇϱâ À§ÇÑ ¹æ¹ýÀ» Á¦°øÇÑ´Ù.(¿¹¸¦ µé¾î, gcc ¿É¼Ç `-fomit-frame-pointer' ´Â ÇÁ·¹ÀÓ ¾ø´Â ÇÔ¼ö¸¦ ¸¸µç´Ù.) À̰ÍÀº ÇÁ·¹ÀÓ ¼³Á¤ ½Ã°£À» ÁÙÀ̱â À§ÇØ ¹«°Å¿î ¶óÀ̺귯¸® ÇÔ¼ö¸¦ »ç¿ëÇÒ¶§ »ç¿ëÇÑ´Ù. GDB´Â À̵é ÇÔ¼ö È£ÃâÀ» ´Ù·ç±â À§ÇÑ Á¦ÇÑµÈ ±â´ÉÀ» °¡Áö°í ÀÖ´Ù. innermost ÇÔ¼ö È£ÃâÀÌ ½ºÅà ÇÁ·¹ÀÓÀ» °¡Áö°í ÀÖÁö ¾ÊÀ½¿¡µµ ºÒ±¸Çϰí, GDB´Â ±×°ÍÀÌ ºÐ¸®µÈ ÇÁ·¹ÀÓÀ» °¡Áö°í ÀÖ´Â °Íó·³ °£ÁÖÇÑ´Ù. À̰ÍÀº ÇÔ¼ö È£Ãâ üÀνà Àû´çÇÑ ÃßÀûÀ» Çã¿ëÇϱâ À§ÇØ º¸Åë 0À¸·Î µÈ´Ù. ±×·¯³ª, GDB´Â ±×¹ÛÀÇ ½ºÅÿ¡¼­ ÇÁ·¹ÀÓ ¾ø´Â ÇÔ¼ö¸¦ Á¦°øÇÏÁö ¾Ê´Â´Ù.

frame args
frame ¸í·É¾î´Â ÇÑ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ´Ù¸¥ ½ºÅà ÇÁ·¹ÀÓÀ¸·Î À̵¿Çϵµ·Ï ¿©·¯ºÐÀ» Çã¿ëÇÏ¸ç ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ ½ºÅà ÇÁ·¹ÀÓÀ» Ãâ·ÂÇÑ´Ù. args Àº ÇÁ·¹ÀÓ ÁÖ¼Ò³ª ½ºÅà ÇÁ·¹ÀÓ ¼öÁß ÇϳªÀÌ´Ù. ÀÎÀÚ°¡ ¾ø´Ù¸é, frame ÇöÀç ½ºÅà ÇÁ·¹ÀÓÀ» Ãâ·ÂÇÑ´Ù.
select-frame
select-frame ¸í·É¾î´Â ÇÁ·¹ÀÓ Ãâ·Â¾øÀÌ ÇÑ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ´Ù¸¥ ½ºÅà ÇÁ·¹ÀÓÀ¸·Î À̵¿Çϵµ·Ï Çã¿ëÇÑ´Ù. À̰ÍÀº Á¶¿ëÇÑ frame ¹öÀü ÀÌ´Ù.

Backtraces

backtrace´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ¾î¶»°Ô µ¹¾Æ°£´ÂÁö¿¡ ´ëÇÑ ¿ä¾àÀÌ´Ù. ÇöÀç ½ÇÇàµÇ´Â ÇÁ·¹ÀÓ(ÇÁ·¹ÀÓ 0)¿¡¼­ ½ÃÀÛÇÏ¿© È£ÃâÀÚ(ÇÁ·¹ÀÓ 1)°¡ µÚµû¶ó¿À°í ±×¸®°í ½ºÅÃÀ§¿¡ ÀÖ´Â ¸¹Àº ÇÁ·¹ÀÓÀ» À§ÇØ ÇÁ·¹ÀÓ´ç ÇѶóÀÎÀ» º¸¿©ÁØ´Ù.

backtrace
bt
Àüü ½ºÅÿ¡ ´ëÇÑ backtrace¸¦ º¸¿©ÁØ´Ù: ½ºÅÿ¡ ÀÖ´Â ¸ðµç ÇÁ·¹ÀÓÀ» À§ÇØ ÇÁ·¹ÀÓ´ç ÇÑ ¶óÀÎ. ¿©·¯ºÐÀº ½Ã½ºÅÛ ÀÎÅÍ·´Æ® ¹®ÀÚÀÎ C-c¸¦ ŸÀÔÇÎÇÏ¿© ¾î´À¶§µçÁö backtrace ¸¦ ¸ØÃâ¼ö ÀÖ´Ù.
backtrace n
bt n
ºñ½ÁÇÏÁö¸¸, ´ÜÁö innermost n ÇÁ·¹ÀÓ¸¸À» Ãâ·ÂÇÑ´Ù.
backtrace -n
bt -n
ºñ½ÁÇÏÁö¸¸, ´ÜÁö outermost n ÇÁ·¹ÀÓ¸¸À» Ãâ·ÂÇÑ´Ù.

À̸§ where°ú info stack(Ãà¾àµÈ infos) Àº backtrace ¸¦ À§ÇÑ Ãß°¡ÀûÀÎ º°ÄªÀÌ´Ù.

backtrace¿¡¼­ °¢ ¶óÀÎÀº ÇÁ·¹ÀÓ ¼ö¿Í ÇÔ¼öÀ̸§À» º¸¿©ÁØ´Ù. ÇÁ·Î±×·¥ Ä«¿îÅÍ °ª ¶ÇÇÑ º¸¿©Áø´Ù.--¸¸ÀÏ ¿©·¯ºÐÀÌ set print address off ¸¦ »ç¿ëÇÏÁö ¾Ê¾Ò´Ù¸é. backtrace´Â ¶ÇÇÑ ¸¶Ä¡ ÇÔ¼öÀÇ ÀÎÀÚ Ã³·³ ¼Ò½º ÆÄÀÏ À̸§°ú ¶óÀÎ ³Ñ¹öµµ º¸¿©ÁØ´Ù. ÇÁ·Î±×·¥ Ä«¿îÅÍ °ªÀº ¸¸ÀÏ ±× ¶óÀÎ ³Ñ¹ö¿¡¼­ Äڵ尡 ½ÃÀÛµÈ´Ù¸é »ý·«µÈ´Ù.

¿©±â¿¡ backtraceÀÇ ¿¹Á¦°¡ ÀÖ´Ù. À̰ÍÀº °¡Àå ¾ÈÂÊÀÇ 3°³ÀÇ ÇÁ·¹ÀÓÀ» º¸¿©ÁÖ´Â `bt 3' ¸í·É¾îÀÌ´Ù.

#0  m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) 
    at builtin.c:993
#1  0x6e38 in expand_macro (sym=0x2b600) at macro.c:242
#2  0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08)
    at macro.c:71
(More stack frames follow...)

ÇÁ·¹ÀÓ 0 Ãâ·ÂÀº ÇÁ·Î±×·¥ Ä«¿îÅͰªÀ¸·Î ½ÃÀÛÇÏÁö ¾Ê¾ÒÀ¸¸ç, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ builtin.c ÀÇ 993 ¶óÀο¡¼­ ¸ØÃß¾ú´Ù´Â °ÍÀ» °¡¸®Å²´Ù.

ÇÁ·¹ÀÓ ¼±ÅÃÇϱâ

¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ ½ºÅÃÀ̳ª ´Ù¸¥ µ¥ÀÌÅ͸¦ °Ë»çÇÏ´Â ´ëºÎºÐÀÇ ¸í·É¾îµéÀº ±×¼ø°£¿¡ ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ÀÛµ¿ÇÑ´Ù. ¿©±â¿¡ ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓÀÌ ÀÖ´Ù.; ±×°Íµé ¸ðµÎ´Â ´ÜÁö ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓÀÇ °£´ÜÇÑ ¼³¸íÀ» Ãâ·ÂÇϰí Á¾·áµÈ´Ù.

frame n
f n
ÇÁ·¹ÀÓ ³Ñ¹ö n¸¦ ¼±ÅÃÇÑ´Ù. ÇÁ·¹ÀÓ 0Àº ÇöÀç ½ÇÇàµÇ´Â °¡Àå ¾ÈÂÊ ÇÁ·¹ÀÓÀ̶ó Çϰí, ÇÁ·¹ÀÓ 1Àº °¡Àå ¾ÈÂÊ 1À» È£ÃâÇÑ ÇÁ·¹ÀÓ µîµîÀÌ¶ó °¡Á¤ÇÏÀÚ. °¡Àå ³ôÀº ¼öÀÇ ÇÁ·¹ÀÓÀº main ÀÌ´Ù.
frame addr
f addr
ÇÁ·¹ÀÓ ÁÖ¼Ò addr ¸¦ ¼±ÅÃÇÑ´Ù. À̰ÍÀº ¸¸ÀÏ ½ºÅà ÇÁ·¹ÀÓ »ç½½ÀÌ ¹ö±×·Î ¼Õ»óµÇ°Å³ª ¸ðµç ÇÁ·¹ÀÓ¿¡ Àû´çÇÑ ¼ö ´ëÀÔÀÌ ºÒ°¡´ÉÇÏ°Ô µÇ¾úÀ»¶§ ÁÖ·Î À¯¿ëÇÏ´Ù. Ãß°¡ÀûÀ¸·Î, À̰ÍÀº ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ´ÙÁß ½ºÅðú ±×°Íµé »çÀ̸¦ ÀÌ¿ëÇÒ¶§ À¯¿ëÇÏ´Ù. SPARC ¾ÆÅ°ÅØÃÄ¿¡¼­, frame ´Â ÀÓÀÇÀÇ ÇÁ·¹ÀÓÀ» ¼±ÅÃÇϱâ À§ÇØ 2°³ÀÇ ÁÖ¼Ò°¡ ÇÊ¿äÇÏ´Ù.; ÇÁ·¹ÀÓ Æ÷ÀÎÅÍ¿Í ½ºÅà Æ÷ÀÎÅÍ. MIPS¿Í Alpha ¾ÆÅ°ÅØÃÄ¿¡¼­µµ 2°³ÀÇ ÁÖ¼Ò°¡ ÇÊ¿äÇÏ´Ù: ½ºÅà Æ÷ÀÎÅÍ¿Í ÇÁ·Î±×·¥ Ä«¿îÅÍ. 29k ¾ÆÅ°ÅØÃÄ¿¡¼­´Â 3°³ÀÇ ÁÖ¼Ò°¡ ÇÊ¿äÇÏ´Ù: ·¹Áö½ºÅÍ ½ºÅà Æ÷ÀÎÅÍ, ÇÁ·Î±×·¥ Ä«¿îÅÍ, ±×¸®°í ¸Þ¸ð¸® ½ºÅà Æ÷ÀÎÅÍ.
up n
½ºÅÃÀ§ n ÇÁ·¹ÀÓÀ¸·Î À̵¿Ç϶ó. ¾ç¼ö n¿¡¼­, À̰ÍÀº ¹Ù±ù ÇÁ·¹ÀÓÂÊÀ¸·Î, Å« ÇÁ·¹ÀÓ ¼ö·Î, ´õ ¿À·¡ ÀÖ¾ú´ø ÇÁ·¹ÀÓÂÊÀ¸·Î ³ª¾Æ°£´Ù. n ´Â 1ÀÌ ±âº»ÀÌ´Ù.
down n
½ºÅà ¾Æ·¡ n À¸·Î À̵¿Ç϶ó. ¾ç¼ö n¿¡¼­, À̰ÍÀº ¾ÈÂÊ ÇÁ·¹ÀÓÂÊÀ¸·Î, ³·Àº ÇÁ·¹ÀÓ ¼öÂÊÀ¸·Î , °¡Àå ÃÖ±Ù¿¡ ¸¸µé¾îÁø ÇÁ·¹ÀÓÂÊÀ¸·Î ³ª¾Æ°£´Ù. ¿©·¯ºÐÀº downÀ» do ·Î °£´ÜÈ÷ ÇÒ¼ö ÀÖ´Ù.

ÀÌµé ¸í·É¾îµé ¸ðµÎ´Â ÇÁ·¹ÀÓÀ» ¼³¸íÇÏ´Â 2¶óÀÎÀ» Ãâ·ÂÇÏ°í ¸¶Ä£´Ù. ù ¶óÀÎÀº ÇÁ·¹ÀÓ ¼ö, ÇÔ¼ö À̸§, ÀÎÀÚ, ±×¸®°í ¼Ò½º ÆÄÀÏ ±× ÇÁ·¹ÀÓ¿¡¼­ ½ÇÇà ¶óÀÎ ³Ñ¹ö¸¦ º¸¿©ÁØ´Ù. µÎ¹øÂ° ¶óÀÎÀº ¼Ò½º ¶óÀÎÀÇ ÅØ½ºÆ®¸¦ º¸¿©ÁØ´Ù.

¿¹:

(gdb) up
#1  0x22f0 in main (argc=1, argv=0xf7fffbf4, env=0xf7fffbfc)
    at env.c:10
10              read_input_file (argv[i]);

Ãâ·ÂÈÄ, ÀÎÀÚ ¾ø´Â list ¸í·É¾î´Â ÇÁ·¹ÀÓ ½ÇÇà½ÃÁ¡ °¡¿îµ¥ 10 ¶óÀÎÀ» Ãâ·ÂÇÏ´Ù. ¼Ò½º ¶óÀÎ Ãâ·ÂÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

up-silently n
down-silently n
ÀÌµé µÎ ¸í·É¾î´Â up°ú downÀÇ º¯Á¾ÀÌ´Ù.; ±×µéÀº »õ ÇÁ·¹ÀÓÀ» Ãâ·ÂÇÏÁö ¾Ê°í Á¶¿ëÈ÷ ÀÛ¾÷Çϴ°ÍÀÌ ´Ù¸£´Ù. ÀÌµé ¸í·É¾î´Â Ãâ·ÂÀÌ ÇÊ¿ä ¾ø°í È¥¶õ½º·´°Ô Ãâ·ÂµÇ´Â ¶§¿¡ »ç¿ëÇϱâ À§ÇÑ °ÍÀÌ´Ù.

ÇÁ·¹ÀÓ¿¡ °üÇÑ Á¤º¸

¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡ °üÇÑ Á¤º¸¸¦ Ãâ·ÂÇϱâ À§ÇÑ ´Ù¸¥ ¸í·É¾îµéÀÌ ÀÖ´Ù.

frame
f
ÀÎÀÚ ¾øÀÌ »ç¿ëµÉ¶§, ÀÌ ¸í·É¾î´Â ¼±ÅÃµÈ ÇÁ·¹ÀÓÀ» ¹Ù²ÙÁö ¾Ê°í ÇöÀç ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡ °üÇÑ °£´ÜÇÑ ¼³¸íÀ» Ãâ·ÂÇÑ´Ù. °£´ÜÈ÷ f ÀÌ´Ù. ÀÎÀÚ°¡ ÀÖ´Ù¸é, ÀÌ ¸í·É¾î´Â ½ºÅà ÇÁ·¹ÀÓÀ» ¼±ÅÃÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.
info frame
info f
ÀÌ ¸í·É¾î´Â ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓÀÇ ÀÚ¼¼ÇÑ ¼³¸íÀ» Ãâ·ÂÇÑ´Ù.: ÀÚ¼¼ÇÑ ¼³¸íÀº ¾î¶²°ÍÀÌ ½ºÅà Æ÷¸ËÀ» À߸øµÇ°Ô ÇßÀ»¶§ À¯¿ëÇÏ´Ù.
info frame addr
info f addr
ÇÁ·¹ÀÓ ¼±ÅþøÀÌ, ÁÖ¼Ò addr ¿¡ ÀÖ´Â ÇÁ·¹ÀÓ¿¡ °üÇÑ ÀÚ¼¼ÇÑ ¼³¸íÀ» Ãâ·ÂÇÑ´Ù. ÀÌ ¼±ÅÃµÈ ÇÁ·¹ÀÓÀº ÀÌ ¸í·É¾î¿¡ ÀÇÇØ ¹Ù²ÙÁö ¾Ê°í ³²¾Æ Àִ´Ù. À̰ÍÀº ¿©·¯ºÐÀÌ frame ¸í·É¾î¿¡¼­ ±â¼úÇÑ °°Àº Á¾·ùÀÇ ÁÖ¼Ò¸¦ ¿ä±¸ÇÑ´Ù.(¸î¸î ¾ÆÅ°ÅØÃĸ¦ À§ÇØ 1°³ ÀÌ»ó). ÇÁ·¹ÀÓ ¼±ÅÃÇϱâ. ¼½¼ÇÀ» ÂüÁ¶Çضó.
info args
°¢ ¶óÀο¡ ¼±ÅÃµÈ ÇÁ·¹ÀÓÀÇ ÀÎÀÚ¸¦ Ãâ·ÂÇÑ´Ù.
info locals
°¢ ¶óÀο¡ ¼±ÅÃµÈ ÇÁ·¹ÀÓÀÇ Áö¿ª º¯¼ö¸¦ Ãâ·ÂÇÑ´Ù. À̵éÀº ¼±ÅÃµÈ ÇÁ·¹ÀÓ ½ÇÇà ½ÃÁ¡¿¡¼­ Á¢±ÙÇÒ¼ö ÀÖ´Â ¸ðµç º¯¼ö(Á¤Àû ¶Ç´Â ÀÚµ¿À¸·Î ¼±¾ðµÈ)ÀÌ´Ù.
info catch
ÇöÀç ½ÇÇà ½ÃÁ¡¿¡ ÀÖ´Â ÇöÀç ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ Ȱµ¿ÇÏ´Â ¸ðµç ¿¹¿Ü Çڵ鷯ÀÇ ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. ¿¹¿Ü Çڵ鷯¸¦ º¸±â À§ÇØ, °ü·Ã ÇÁ·¹ÀÓÀ» ¹æ¹®Çضó.(up, down frame ¸í·É¾îµé); ±×¸®°í info catch ¸¦ ŸÀÔÇÎÇØ¶ó. Breakpoints ¿Í ¿¹¿Ü ¼½¼ÇÀ» ÂüÁ¶Çضó.

MIPS ¸Ó½Å°ú ÇÔ¼ö ½ºÅÃ

MIP ±â¹Ý ÄÄÇ»Åʹ ƯÀÌÇÑ ½ºÅà ÇÁ·¹ÀÓÀ» »ç¿ëÇÑ´Ù. À̰ÍÀº °¡²û ÇÔ¼ö ½ÃÀÛÀ» ¹ß°ßÇϱâ À§ÇØ °´Ã¼ Äڵ忡¼­ µÚ·Î ãµµ·Ï GDB ¸¦ ¿ä±¸ÇÑ´Ù.

ÀÀ´ä ½Ã°£(ƯÈ÷ GDB°¡ Ž»öÀ» À§ÇØ Å½»ö ¶óÀÎÀ» ´À¸®°Ô Á¦ÇÑÇÏ´Â ³»ÀåÇü ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­)À» Çâ»ó½Ã۱â À§ÇØ, ¿©·¯ºÐÀº ´ÙÀ½ ¸í·É¾îµéÁß Çϳª¸¦ »ç¿ëÇÏ¿© Ž»öÀÇ Å©±â¸¦ Á¦ÇÑÇÏ±æ ¿øÇÒÁöµµ ¸ð¸¥´Ù.:

set heuristic-fence-post limit
ÇÔ¼öÀÇ ½ÃÀÛÀ» À§ÇØ Å½»ö½Ã limit ¹ÙÀÌÆ®±îÁö °Ë»çÇϵµ·Ï GDB¸¦ Á¦ÇÑ ÇÑ´Ù. 0 °ªÀº Á¦ÇÑÀÌ ¾øÀ½À» ÀǹÌÇÑ´Ù. ±×·¯³ª, 0À» Á¦¿ÜÇϰí Á¦ÇѰªº¸´Ù ´õ Å« ¹ÙÀÌÆ® heuristic-fence-post ´Â Ž»öµÇ¾î¾ß ÇÑ´Ù. ±×¸®°í µ¹¸®´Âµ¥ ´õ ¿À·¡ °É¸°´Ù.
show heuristic-fence-post
ÇöÀç ½Ã°£À» Ãâ·ÂÇÑ´Ù.

ÀÌµé ¸í·É¾îµéÀº GDB°¡ MIP ÇÁ·Î¼¼¼­¿¡¼­ ÇÁ·Î±×·¥À» µð¹ö±ëÇϵµ·Ï ¼³Á¤µÇ¾úÀ» ¶§¸¸ ÀÌ¿ëÇÒ¼ö ÀÖ´Ù.

¼Ò½º ÆÄÀÏ °Ë»çÇϱâ

GDB´Â ÇÁ·Î±×·¥ ¼Ò½ºÀÇ ÀϺθ¦ Ãâ·ÂÇÒ¼ö ÀÖ´Ù. ¿Ö³ÄÇϸé ÇÁ·Î±×·¥¿¡ ÀúÀåµÈ µð¹ö±ë Á¤º¸´Â ¼Ò½º ÆÄÀÏÀÌ ÄÄÆÄÀϵɶ§ »ç¿ëµÈ°ÍÀÌ ¹«¾ùÀÎÁö¸¦ ¸»Çϱ⠶§¹®ÀÌ´Ù. ÇÁ·Î±×·¥ÀÌ ¸ØÃâ¶§, GDB´Â ¸ØÃá ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù. ¸¶Âù °¡Áö·Î ½ºÅà ÇÁ·¹ÀÓÀ» ¼±ÅÃÇÒ¶§, GDB´Â ÇÁ·¹³»¿¡¼­ ¸ØÃá ½ÇÇà ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù. (ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.) ¿©·¯ºÐÀº ¸í¹éÇÑ ¸í·É¾î·Î ¼Ò½º ÆÄÀÏÀÇ ´Ù¸¥ ºÎºÐÀ» Ãâ·ÂÇÒ¼ö ÀÖ´Ù.

¿©·¯ºÐÀÌ GNU Emacs ÀÎÅÍÆäÀ̽º¸¦ ÅëÇØ GDB¸¦ »ç¿ëÇÑ´Ù¸é, ¿©·¯ºÐÀº ¼Ò½º¸¦ º¸±â À§ÇØ Emacs ±â´ÉÀ» »ç¿ëÇϴ°ÍÀÌ ´õ ÁÁÀ»Áöµµ ¸ð¸¥´Ù.; GNU Emacs¿¡¼­ GDB »ç¿ëÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

¼Ò½º ¶óÀÎ Ãâ·ÂÇϱâ

¼Ò½º ÆÄÀÏ¿¡¼­ ¶óÀÎÀ» Ãâ·ÂÇϱâ À§ÇØ list ¸í·É¾î¸¦ »ç¿ëÇØ¶ó. (°£´ÜÈ÷ l). ±âº»ÀûÀ¸·Î, 10 ¶óÀÎÀÌ Ãâ·ÂµÈ´Ù. ¿©·¯ºÐÀÌ Ãâ·ÂÇÏ±æ ¿øÇÏ´Â ÆÄÀÏÀÇ ÀϺθ¦ ÁöÁ¤Çϱâ À§ÇÑ ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.

¿©±â¿¡ ÀϹÝÀûÀ¸·Î »ç¿ëµÇ´Â list ¸í·É¾îÀÇ ÇüŰ¡ ÀÖ´Ù.:

list linenum
ÇöÀç ¼Ò½º ÆÄÀÏ¿¡¼­ ¶óÀÎ ³Ñ¹ö linenum ¸¦ °¡¿îµ¥·Î ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list function
ÇÔ¼ö function ½ÃÀÛ±Ùó¸¦ °¡¿îµ¥·Î ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list
¶óÀεéÀ» ´õ Ãâ·ÂÇÑ´Ù. ¸¸ÀÏ Ãâ·ÂµÈ ¸¶Áö¸· ¶óÀÎÀÌ list ¸í·É¾î¿Í ÇÔ²² Ãâ·ÂµÇ¾ú´Ù¸é, Ãâ·ÂµÈ ¸¶Áö¸· ¶óÀδÙÀ½¿¡ ¶óÀεéÀ» Ãâ·ÂÇÑ´Ù.; ±×·¯³ª, Ãâ·ÂµÈ ¸¶Áö¸· ¶óÀÎÀÌ ½ºÅà ÇÁ·¹ÀÓ(½ºÅà °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)ÀÇ ÀϺηνá Ãâ·ÂµÈ ¶óÀÎÀ̶ó¸é, À̰ÍÀº ±× ¶óÀÎÀ» Áß½ÉÀ¸·Î ¸î¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list -
¸¶Áö¸·À¸·Î Ãâ·ÂµÈ ¶óÀÎÀü ¸î ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.

±âº»ÀûÀ¸·Î, GDB´Â list¸í·É¾î¿Í 10°³ÀÇ ¼Ò½º ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù. ¿©·¯ºÐÀº set listsizeÀ» »ç¿ëÇÏ¿© À̰ÍÀ» ¹Ù²Ü¼ö ÀÖ´Ù.

set listsize count
list¸í·É¾î´Â count ¼Ò½º ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.(¸¸ÀÏ list ÀÎÀÚ°¡ ´Ù¸¥ ¼ö¸¦ ÁöÁ¤ÇÏÁö ¾Ê¾Ò´Ù¸é)
show listsize
list°¡ Ãâ·ÂÇÏ´Â ¶óÀÎ ³Ñ¹ö¸¦ Ãâ·ÂÇÑ´Ù.

RET·Î list ¸í·É¾î¸¦ ¹Ýº¹ÇÏ´Â °ÍÀº ÇØ´ç ÀÎÀÚ¸¦ ¹«½ÃÇϴ°ÍÀÌ µÈ´Ù. ±×·¡¼­ list¿Í µ¿ÀÏÇÏ´Ù. À̰ÍÀº °°Àº ¶óÀÎÀ» °è¼Ó º¸±æ ¿øÇÒ¶§ À¯¿ëÇÏ´Ù. ¿¹¿Ü´Â `-' ÀÎÀÚÀÇ °æ¿ìÀÌ´Ù; ±× ÀÎÀÚ´Â ¹Ýº¹½Ã º¸Á¸µÇ¾î ¸Å ¹Ýº¹½Ã ¼Ò½º ÆÄÀÏÀ» À̵¿ÇÑ´Ù.

ÀϹÝÀûÀ¸·Î, list ¸í·É¾î´Â ¿©·¯ºÐÀÌ 0, 1 ¶Ç´Â 2 linespecs¸¦Á¦°øÇß´Ù°í ¿¹»óÇÑ´Ù. linespecÀº ¼Ò½º ¶óÀÎÀ» °¡¸®Å²´Ù; ¼Ò½º ¶óÀÎÀ» ¾²±âÀ§ÇÑ ¸î°¡Áö ¹æ¹ýÀÌ ÀÖÁö¸¸, °á°ú´Â ¸î¸î ¼Ò½º ¶óÀÎÀ» ÁöÁ¤ÇÏ´Â °ÍÀÌ´Ù. ¿©±â¿¡ list¸¦ À§ÇÑ °¡´ÉÇÑ ÀÎÀÚµé ¸ðµÎ¸¦ ±â¼úÇÑ´Ù:

list linespec
linespec°¡ °¡¸®Å°´Â ¶óÀαÙó¸¦ Áß½ÉÀ¸·Î ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list first,last
first¿¡¼­ last±îÁöÀÇ ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù. µÎ ÀÎÀÚµéÀº linespecsÀÌ´Ù.
list ,last
last·Î ³¡³ª´Â ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list first,
first·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀ» Ãâ·ÂÇÑ´Ù.
list +
¸¶Áö¸·À¸·Î Ãâ·ÂµÈ ¶óÀδÙÀ½ÀÇ ¶óÀεéÀ» Ãâ·ÂÇÑ´Ù.
list -
¸¶Áö¸·À¸·Î Ãâ·ÂµÈ ¶óÀÎÀüÀÇ ¶óÀεéÀ» Ãâ·ÂÇÑ´Ù.
list
¾Õ¿¡¼­ ±â¼úÇѰͰú °°´Ù.

¿©±â¿¡ ´ÜÀÏ ¼Ò½º ¶óÀÎÀ» ÁöÁ¤ÇÏ´Â ¹æ¹ýÀÌ ÀÖ´Ù--¸ðµç Á¾·ùÀÇ linespec

number
¼Ò½º ÆÄÀÏÀÇ ¶óÀÎ number¸¦ ÁöÁ¤ÇÑ´Ù. number ¸í·É¾î°¡ µÎ linespecÀ» °¡Áú¶§, À̰ÍÀº óÀ½ linespecó·³ °°Àº ¼Ò½º ÆÄÀÏÀ» °¡¸®Å²´Ù.
+offset
¸¶Áö¸· ¶óÀÎÀÌ Ãâ·ÂµÈÈÄ lineÀ» offset ¶óÀÎÀ¸·Î ÁöÁ¤ÇÑ´Ù. list ¸í·É¾î¿¡¼­ µÎ¹øÂ° linespecsó·³ »ç¿ëµÉ¶§, À̰ÍÀº óÀ½ linespec¿¡¼­ ¾Æ·¡ÂÊÀ¸·Î offset ¶óÀÎÀ» ÁöÁ¤ÇÑ´Ù.
-offset
¸¶Áö¸· ¶óÀÎÀÌ Ãâ·ÂµÇ±â Àü¿¡ lineÀ» offset ¶óÀÎÀ¸·Î ÁöÁ¤ÇÑ´Ù.
filename:number
¼Ò½º ÆÄÀÏ filename³» ¶óÀÎ number¸¦ ÁöÁ¤ÇÑ´Ù.
function
ÇÔ¼ö function bodyÀÇ ½ÃÀÛÀÎ ¶óÀÎÀ» °¡¸®Å²´Ù. ¿¹¸¦ µé¾î: C¿¡¼­, À̰ÍÀº open brace¸¦ °¡Áö°í ÀÖ´Â ¶óÀÎÀÌ´Ù.
filename:function
ÆÄÀÏ filename³» ÇÔ¼ö function body¸¦ ½ÃÀÛÇÏ´Â open-brace ¶óÀÎÀ» ÁöÁ¤ÇÑ´Ù. ¿©·¯ºÐÀº ´Ù¸¥ ¼Ò½º ÆÄÀϳ» °°Àº À̸§ÀÇ ÇÔ¼ö°¡ ÀÖÀ»¶§, ¸ðÈ£ÇÔÀ» ÇÇÇϱâ À§ÇØ ÇÔ¼ö À̸§°ú ÆÄÀÏÀ̸§ÀÌ ÇÊ¿äÇÏ´Ù.
*address
ÇÁ·Î±×·¥ ÁÖ¼Ò address¸¦ Æ÷ÇÔÇÏ´Â ¶óÀÎÀ» ÁöÁ¤ÇÑ´Ù. address´Â ¾î¶² Ç¥Çö½ÄÀÌ´Ù.

¼Ò½º ÆÄÀÏ Ã£±â

Á¤±Ô½Ä Ç¥Çö½ÄÀ» À§ÇØ ÇöÀç ¼Ò½º ÆÄÀÏ Å½»öÀ» À§ÇØ µÎ°³ÀÇ ¸í·É¾î°¡ ÀÖ´Ù.

forward-search regexp