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
search regexp
¸í·É¾î `forward-search regexp'´Â regexp°úÀÇ ¸ÅÄ¡¸¦ À§ÇØ, ³ª¿­µÈ ¸¶Áö¸· ¶óÀÎ ´ÙÀ½À¸·Î ½ÃÀÛÇÏ´Â °¢ ¶óÀÎÀ» °Ë»çÇÑ´Ù. ¹ß°ßµÇ´Â ¶óÀÎÀ» ³ª¿­ÇÑ´Ù. ¿©·¯ºÐÀº µ¿ÀǾî `search regexp'³ª fo·Î ¸í·É¾î À̸§À» ÁÙÀϼö ÀÖ´Ù.
reverse-search regexp
`reverse-search regexp'´Â regexp°úÀÇ ¸ÅÄ¡¸¦ À§ÇØ, ³ª¿­µÈ ¸¶Áö¸· ¶óÀÎÀü¿¡ ½ÃÀÛÇÏ°í µÚ·Î °¡´Â °¢ ¶óÀÎÀ» °Ë»çÇÑ´Ù. ¹ß°ßµÇ´Â ¶óÀÎÀ» ³ª¿­ÇÑ´Ù. ¿©·¯ºÐÀº rev·Î ¸í·É¾î À̸§À» ÁÙÀϼö ÀÖ´Ù.

¼Ò½º µð·ºÅ丮 ÁöÁ¤Çϱâ

½ÇÇà ÇÁ·Î±×·¥Àº °¡²û ÄÄÆÄÀÏµÈ µð·ºÅ丮¿¡¼­ ¼Ò½º ÆÄÀÏÀÇ µð·ºÅ丮¸¦ ±â·ÏÇÏÁö ¾Ê´Â´Ù. ÄÄÆÄÀϵɶ§, µð·ºÅ丮µéÀº ÄÄÆÄÀÏ°ú µð¹ö±ë ¼¼¼Ç »çÀÌ¿¡ À̵¿µÉ¼ö ÀÖ´Ù. GDB´Â ¼Ò½º ÆÄÀÏÀ» ã±â À§ÇÑ µð·ºÅ丮 ¸®½ºÆ®¸¦ °¡Áö°í ÀÖ´Ù.; ÀÌ°ÍÀº source pathÀ̶ó ºÒ¸°´Ù. GDB°¡ ¼Ò½º ÆÄÀÏÀ» ¿øÇÒ¶§¸¶´Ù, GDB´Â ¿øÇÏ´Â À̸§À» °¡Áø ÆÄÀÏÀ» ¹ß°ßÇÒ¶§±îÁö ¸®½ºÆ®³» ¸ðµç µð·ºÅ丮¸¦ ã´Â´Ù. ½ÇÇà Ž»ö °æ·Î´Â ÀÌ·¯ÇÑ ¸ñÀûÀ» À§ÇØ »ç¿ëµÇÁö´Â ¾Ê´Â´Ù. ¼Ò½º °æ·Î¿¡¼­ ÀϾÁö ¾Ê´Â´Ù¸é, ÇöÀç ÀÛ¾÷ µð·ºÅ丮µµ ¸¶Âù°¡Áö´Ù.

¸¸ÀÏ GDB°¡ ¼Ò½º °æ·Î¿Í °´Ã¼ ÇÁ·Î±×·¥À» ±â·ÏÇÑ µð·ºÅ丮¿¡¼­ ¼Ò½º ÆÄÀÏÀ» ¹ß°ßÇÏÁö ¸øÇß´Ù¸é, GDB´Â ±× µð·ºÅ丮µµ ½ÃµµÇÑ´Ù. ¸¸ÀÏ ¼Ò½º °æ·Î°¡ ºñ¾î ÀÖ°í, ÄÄÆÄÀÏ µð·ºÅ丮¿¡ ´ëÇÑ ±â·ÏÀÌ ¾ø´Ù¸é, GDB´Â ¸¶Áö¸·À¸·Î ÇöÀç µð·ºÅ丮¿¡¼­ ã´Â´Ù.

¿©·¯ºÐÀÌ ¼Ò½º °æ·Î¸¦ ´Ù½Ã ¼³Á¤Çϰųª Àç ¹è¿­ÇÒ¶§´Â ¾ðÁ¦³ª, GDB´Â ¼Ò½º ÆÄÀϵéÀÌ ¹ß°ß µÇ´Â °÷°ú °¢ ¶óÀÎÀÌ ¼Ò½º ÆÄÀÏ ¾îµð¿¡ ÀÖ´ÂÁö¿¡ °üÇØ Ä³½ÃµÈ ¸ðµç Á¤º¸¸¦ Áö¿î´Ù.

¿©·¯ºÐÀÌ GDB¸¦ ½ÃÀÛÇÒ¶§, ¼Ò½º °æ·Î´Â ºñ¾î ÀÖ´Ù. ´Ù¸¥ µð·ºÅ丮¸¦ Ãß°¡Çϱâ À§ÇØ, directory ¸í·É¾î¸¦ »ç¿ëÇضó.

directory dirname ...
dir dirname ...
µð·ºÅ丮 dirname¸¦ ¼Ò½º °æ·ÎÀÇ ¾Õ¿¡ Ãß°¡Çضó. ¸î¸î µð·ºÅ丮 À̸§µéÀº `:'³ª whitespace·Î ºÐ¸®Çؼ­ ÀÌ ¸í·É¾î¿¡ ÁÙ¼ö ÀÖ´Ù. ¿©·¯ºÐÀº ¼Ò½º °æ·Î¿¡ ÀÌ¹Ì ÀÖ´Â µð·ºÅ丮¸¦ ÁöÁ¤ÇÒ¼ö ÀÖ´Ù.; ÀÌ°ÍÀº ¾ÕÀ¸·Î À̵¿µÈ´Ù. ±×·¡¼­ GDB´Â °ð ã°Ô µÈ´Ù. ¿©·¯ºÐÀº ÄÄÆÄÀÏ µð·ºÅ丮¸¦ °¡¸®Å°±â À§ÇØ ¹®ÀÚ¿­ `$cdir'¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×¸®°í `$cwd'´Â ÇöÀç ÀÛ¾÷ µð·ºÅ丮¸¦ °¡¸®Å²´Ù. `$cwd'´Â `.'¿Í °°´Ù. -- ÀüÀÚ´Â GDB ¼¼¼Çµ¿¾È ¹Ù²ï´Ù¸é ÇöÀç ÀÛ¾÷ µð·ºÅ丮¸¦ ¦i¾Æ°£´Ù. ¹Ý¸é¿¡ ÈÄÀÚ´Â ¿©·¯ºÐÀÌ ¼Ò½º °æ·Î¿¡ ¿£Æ®¸®¸¦ Ãß°¡ÇÒ¶§¸¶´Ù ÇöÀç µð·ºÅ丮¸¦ È®ÀåÇÑ´Ù.
directory
¼Ò½º °æ·Î¸¦ ºñ°Ô ÇÑ´Ù. ÀÌ°ÍÀº È®ÀÎÀ» ¿ä±¸ÇÑ´Ù.
show directories
¼Ò½º °æ·Î¸¦ Ãâ·ÂÇÑ´Ù: ¾î¶² µð·ºÅ丮µéÀÌ ±×°ÍÀ» Æ÷ÇÔÇÏ´ÂÁö¸¦ º¸¿©ÁØ´Ù.

¿©·¯ºÐÀÇ ¼Ò½º °æ·Î°¡ ´õÀÌ»ó Èï¹Ì°¡ ¾ø´Â µð·ºÅ丮¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù¸é, GDB´Â °¡²û À߸øµÈ ¹öÀüÀÇ ¼Ò½º¸¦ ¹ß°ßÇÏ¿© È¥¶õÀ» ¾ß±âÇÒ¼öµµ ÀÖ´Ù. ¿©·¯ºÐÀº ´ÙÀ½Ã³·³ »óȲÀ» ¹Ù·Î ÀâÀ»¼ö ÀÖ´Ù:

  1. ¼Ò½º °æ·Î¸¦ ±ú²ýÇÏ°Ô Çϱâ À§ÇØ ÀÎÀÚ ¾øÀÌ directory¸¦ »ç¿ëÇضó.
  2. ¿©·¯ºÐÀÌ ¿øÇÏ´Â ¼Ò½º °æ·Î¿¡ µð·ºÅ丮¸¦ ´Ù½Ã ÀνºÅçÇϱâ À§ÇØ Àû´çÇÑ ÀÎÀÚ¸¦ ÁÖ¾î directory¸¦ »ç¿ëÇضó.

¼Ò½º¿Í ±â°è¾î ÄÚµå

¿©·¯ºÐÀº ¼Ò½º ¶óÀεéÀ» ÇÁ·Î±×·¥ ÁÖ¼Ò(±×¸®°í ¹Ý´ë·Î) ´ëÀÀÇϱâ À§ÇØ ¸í·É¾î info line¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×¸®°í ±â°è¾î ¸í·É¾î·Î½á ÁÖ¼Ò ¹üÀ§¸¦ º¸¿©ÁÖ±â À§ÇØ ¸í·É¾î disassemble¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. GNU Emacs ¸ðµå¿¡¼­ µ¹¾Æ°¥¶§, info line ¸í·É¾î´Â ÁöÁ¤µÈ ¶óÀÎÀ» °¡¸®Å°±â À§ÇØ È­»ìÀ» »ç¿ëÇÑ´Ù. ¶ÇÇÑ, info line ¸í·É¾î´Â Çí»ç·Î ½Éº¼¸µ ÇüÅÂÀÇ ÁÖ¼Ò¸¦ Ãâ·ÂÇÑ´Ù.

info line linespec
¼Ò½º ¶óÀÎ linespec¸¦ À§ÇØ ÄÄÆÄÀÏµÈ ÄÚµåÀÇ ½ÃÀÛ°ú ³¡ ÁÖ¼Ò¸¦ Ãâ·ÂÇÑ´Ù. ¿©·¯ºÐÀº list ¸í·É¾î(¼Ò½º ¶óÀÎ Ãâ·ÂÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)¿¡ ÀÇÇØ ÀÌÇصɼö ÀÖ´Â ¹æ¹ýÀ¸·Î ¼Ò½º ¶óÀεéÀ» ÁöÁ¤ÇÒ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î, ¿ì¸®´Â ÇÔ¼ö m4_changequoteÀÇ Ã³À½ ¶óÀÎÀ» À§ÇÑ °´Ã¼ ÄÚµåÀÇ À§Ä¡¸¦ ¹ß°ßÇϱâ À§ÇØ info line¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.:

(gdb) info line m4_changecom
Line 895 of "builtin.c" starts at pc 0x634c and ends at 0x6350.

¿ì¸®´Â ¼Ò½º ¶óÀÎÀÌ Æ¯Á¤ ÁÖ¼Ò¸¦ Ä¿¹öÇÏ´Â °ÍÀÌ ¹«¾ùÀÎÁö¸¦ Á¶»ç(linespecÀ» À§ÇÑ ÇüÅ·νá *addrÀ» »ç¿ëÇÏ¿©)ÇÒ¼ö ÀÖ´Ù:

(gdb) info line *0x63ff
Line 926 of "builtin.c" starts at pc 0x63e4 and ends at 0x6404.

info lineÈÄ¿¡, x ¸í·É¾î¸¦ À§ÇÑ ±âº» ÁÖ¼Ò´Â ¶óÀÎÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ ¹Ù²Ù´Â °ÍÀÌ´Ù. ±×·¡¼­ `x/i'´Â ±â°è¾î ÄÚµå(¸Þ¸ð¸® °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)¸¦ °Ë»çÇϱ⿡ ÃæºÐ ÇÏ´Ù. ¶ÇÇÑ, ÀÌ ÁÖ¼Ò´Â Æí¸® º¯¼ö $_(Æí¸® º¯¼ö ¼½¼ÇÀ» ÂüÁ¶Çضó.)ÀÇ °ªÀ¸·Î½á ÀúÀåµÈ´Ù.

disassemble
ÁöÁ¤µÈ ¸í·É¾î´Â ±â°è¾î ¸í·É¾î·Î½á ¸Þ¸ð¸® ¿µ¿ªÀ» ´ýÇÁÇÑ´Ù. ±âº» ¸Þ¸ð¸® ¿µ¿ªÀº ¼±ÅÃµÈ ÇÁ·¹ÀÓÀÇ ÇÁ·Î±×·¥ Ä«¿îÅ͸¦ µÑ·¯½Î°í ÀÖ´Â ÇÔ¼öÀÌ´Ù. ÀÌ ¸í·É¾î¿¡ ´ëÇÑ ´ÜÀÏ ÀÎÀÚ´Â ÇÁ·Î±×·¥ Ä«¿îÅÍ º¯¼öÀÌ´Ù; GDB´Â ÀÌ º¯¼ö ÁÖÀ§ÀÇ ÇÔ¼ö¸¦ ´ýÇÁÇÑ´Ù. µÎ°³ÀÇ ÀÎÀÚ¸¦ ´ýÇÁÇϱâ À§ÇØ ÁÖ¼Ò ¹üÀ§(óÀ½Àº Æ÷ÇÔÇÏ°í, µÎ¹ø°´Â Á¦¿ÜÇÏ°í)¸¦ ÁöÁ¤ÇÑ´Ù.

¿ì¸®´Â ¸¶Áö¸· info line¿¹Á¦(±× ¿¹´Â SPARC ±â°è¾î ¸í·É¾î¸¦ º¸¿©ÁØ´Ù.)¿¡¼­ º¸¿©ÁØ °´Ã¼ ÄÚµå ¹üÀ§¸¦ °Ë»çÇϱâ À§ÇØ disassemble¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.:

(gdb) disas 0x63e4 0x6404
Dump of assembler code from 0x63e4 to 0x6404:
0x63e4 <builtin_init+5340>:     ble 0x63f8 <builtin_init+5360>
0x63e8 <builtin_init+5344>:     sethi %hi(0x4c00), %o0
0x63ec <builtin_init+5348>:     ld [%i1+4], %o0
0x63f0 <builtin_init+5352>:     b 0x63fc <builtin_init+5364>
0x63f4 <builtin_init+5356>:     ld [%o0+4], %o0
0x63f8 <builtin_init+5360>:     or %o0, 0x1a4, %o0
0x63fc <builtin_init+5364>:     call 0x9288 <path_search>
0x6400 <builtin_init+5368>:     nop
End of assembler dump.
set assembly-language instruction-set
ÀÌ ¸í·É¾î´Â disassemble³ª x/i ¸í·É¾î¸¦ ÅëÇØ ÇÁ·Î±×·¥À» ¿ª¾î¼ÀºíÇÒ¶§ »ç¿ëÇϱâ À§ÇÑ ¸í·É¾î¸¦ ¼±ÅÃÇÑ´Ù. ÀÌ ¸í·É¾î´Â ÇÑ°³ ÀÌ»óÀÇ ³×ÀÌƼºê ¸í·É¾î ÁýÇÕÀ» °¡Áö°í ÀÖ´Â ¾ÆÅ°ÅØÃÄ¿¡¼­ À¯¿ëÇÏ´Ù. ÇöÀç Intel x86 Æйи®¸¦ À§Çؼ­¸¸ Á¤ÀǵǾî ÀÖ´Ù. ¿©·¯ºÐÀº i386³ª i8086·Î instruction-set¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ±âº»Àº i386ÀÌ´Ù.

µ¥ÀÌÅÍ °Ë»çÇϱâ

ÇÁ·Î±×·¥¿¡¼­ µ¥ÀÌÅ͸¦ °Ë»çÇϱâ À§ÇÑ ÀϹÝÀûÀÎ ¹æ¹ýÀº print ¸í·É¾î³ª (°£´ÜÈ÷ p) µ¿ÀǾîÀÎ inspect ÀÌ´Ù. ±×°ÍÀº ÇÁ·Î±×·¥¿¡ ¾²¿©Áø ¾ð¾îÀÇ Ç¥Çö°ªÀ» Æò°¡ÇÏ°í Ãâ·ÂÇÑ´Ù. (´Ù¸¥ ¾ð¾î¿¡¼­ GDB »ç¿ëÇϱ⠼½¼ÇÀ» ÂüÁ¶ Çضó).

print exp
print /f exp
exp ´Â Ç¥Çö½ÄÀÌ´Ù(¼Ò½º ¾ð¾î¿¡¼­). ±âº»ÀûÀ¸·Î exp °ªÀº µ¥ÀÌÅÍ Å¸ÀÔ¿¡ ¸Â´Â Æ÷¸ËÀ¸·Î Ãâ·ÂÇÑ´Ù.; ¿©·¯ºÐÀº `/f' ¸¦ ÁöÁ¤ÇÏ¿© ´Ù¸¥ ¾ð¾î¸¦ ¼±ÅÃÇÒ¼ö ÀÖ´Ù. f ´Â Æ÷¸ËÀ» ÁöÁ¤ÇÏ´Â ¹®ÀÚÀÌ´Ù.;Ãâ·Â Çü½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó.
print
print /f
¿©·¯ºÐÀÌ exp ¸¦ »ý·«ÇÑ´Ù¸é, GDB ´Â ¸¶Áö¸· °ªÀ» ´Ù½Ã Ãâ·ÂÇÑ´Ù. (value history °ª¿¡¼­; Value history ¼½¼ÇÀ» ÂüÁ¶Çضó). ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ¼±ÅÃÇÑ Æ÷¸Ë¿¡¼­ Æí¸®ÇÏ°Ô °ªÀ» Á¶»çÇÏ°Ô Çã¿ëÇÑ´Ù.

µ¥ÀÌÅ͸¦ °Ë»çÇϱâ À§ÇÑ ´õ low-level ¹æ¹ýÀº x ¸í·É¾î¸¦ ÀÌ¿ë ÇÏ´Â °ÍÀÌ´Ù. ±×°ÍÀº ÁöÁ¤µÈ ¸Þ¸ð¸® ÁÖ¼Ò¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ ½ÃÇèÇÏ°í ÁöÁ¤µÈ Æ÷¸ËÀ¸·Î Ãâ·ÂÇÑ´Ù. ¸Þ¸ð¸® °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

¿©·¯ºÐÀÌ Å¸ÀÔ¿¡ °üÇÑ Á¤º¸¿¡ Èï¹Ì°¡ Àְųª ±¸Á¶Ã¼³ª Ŭ·¡½º Çʵ尡 ¼±¾ðµÇ´Â ¹æ¹ý¿¡ Èï¹Ì°¡ ÀÖ´Ù¸é print º¸´Ù´Â ptype exp ¸í·É¾î¸¦ »ç¿ëÇضó. ½Éº¼ Å×ÀÌºí °Ë»çÇϱ⼽¼ÇÀ» ÂüÁ¶Çضó.

Ç¥Çö½Ä

print ¿Í ¸¹Àº ´Ù¸¥ GDB ¸í·É¾îµéÀº Ç¥Çö½ÄÀ» ¹Þ¾ÆµéÀÌ¸ç ±× °ªÀ» °è»êÇÑ´Ù. ¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¹Ö ¾ð¾î¿¡ ÀÇÇØ Á¤ÀÇµÈ »ó¼ö, º¯¼ö ¶Ç´Â ¿¬»êÀÚ´Â GDBÀÇ Ç¥Çö½Ä¿¡¼­ À¯È¿ÇÏ´Ù. ÀÌ°ÍÀº Ãß°¡ÀûÀΠǥÇö½Ä, ÇÔ¼ö È£Ãâ, ij½ºÆà ±×¸®°í ¹®ÀÚ¿­ »ó¼ö¸¦ Æ÷ÇÔÇÑ´Ù. Àü󸮱â #define ¸í·É¾îµé¿¡ ÀÇÇØ Á¤ÀÇµÈ ½Éº¼µéÀº Æ÷ÇÔµÇÁö ¾Ê´Â´Ù.

GDB´Â ÇöÀç »ç¿ëÀÚÀÇ ÀԷ ǥÇö½Ä¿¡¼­ ¹è¿­ »ó¼ö¸¦ Áö¿øÇÑ´Ù. ¹®¹ýÀº {element, element...} ÀÌ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº Ÿ°Ù ÇÁ·Î±×·¥¿¡¼­ mallocµÈ ¸Þ¸ð¸®³» ¹è¿­À» À§ÇØ print {1, 2, 3}¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

C°¡ ¸Å¿ì ³Ð°Ô ÆÛÁ³±â ¶§¹®¿¡ ÀÌ ¸Å´º¾ó¿¡ ¿¹Á¦¿¡¼­ º¸¿©ÁØ ´ëºÎºÐÀÇ Ç¥Çö½ÄÀº C ¿¡ ÇØ´çµÈ´Ù. ´Ù¸¥ ¾ð¾î¿¡¼­ Ç¥Çö½ÄÀ» »ç¿ëÇÏ´Â ¹ä¹ýÀ» À§Çؼ­ ´Ù¸¥ ¾ð¾î¿¡¼­ GDB »ç¿ëÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

ÀÌ ¼½¼Ç¿¡¼­, ¿ì¸®´Â ¿©·¯ºÐÀÇ ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ °ü°è ¾øÀÌ GDB Ç¥Çö½Ä¿¡¼­ »ç¿ëÇÒ¼ö ÀÖ´Â ¿¬»êÀÚµéÀ» ¾Ö±âÇÒ °ÍÀÌ´Ù.

Çüº¯È¯Àº C»Ó¸¸ ¾Æ´Ï¶ó ¸ðµç ¾ð¿¡¼­ Áö¿øµÈ´Ù. ¿Ö³ÄÇÏ¸é ¸Þ¸ð¸® ÁÖ¼Ò¿¡ ÀÖ´Â ±¸Á¶Ã¼¸¦ ½ÃÇèÇϱâ À§Çؼ­ ¼ýÀÚ¸¦ Æ÷ÀÎÅÍ·Î Çüº¯È¯Çϴ°ÍÀº ¸Å¿ì À¯¿ëÇϱ⠶§¹®ÀÌ´Ù.

GDB´Â ÇÁ·Î±×·¥¹Ö ¾ð¾î¿¡¼­ ÀϹÝÀûÀÎ°Íµé ¿Ü¿¡ ´ÙÀ½ ¿¬»êÀÚµéÀ» Áö¿øÇÑ´Ù.:

@
`@' ´Â ¹è¿­·Î½á ¸Þ¸ð¸®ÀÇ ÀϺθ¦ ´Ù·ç±â À§ÇÑ ÀÌÁø ¿¬»êÀÚÀÌ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§Çؼ­ Àΰø ¹è¿­ ¼½¼ÇÀ» ÂüÁ¶Çضó.
::
`::' ´Â ÀÌ°ÍÀÌ Á¤ÀÇµÈ ÆÄÀÏÀ̳ª ÇÔ¼ö³» º¯¼ö¸¦ ÁöÁ¤Çϵµ·Ï Çã¿ëÇÑ´Ù. ÇÁ·Î±×·¥ º¯¼öµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
{type} addr
¸Þ¸ð¸®¿¡ ÀÖ´Â ÁÖ¼Ò addr ¿¡ ÀúÀåµÇ¾î ÀÖ´Â °´Ã¼ ŸÀÔ type ¸¦ °¡¸®Å²´Ù. addr ´Â °ªÀÌ Á¤¼ö³ª Æ÷ÀÎÅÍÀÎ ¾î¶² Ç¥ÇöÀÌ´Ù. (±×·¯³ª Áß°ýÈ£´Â Çüº¯È¯Ã³·³ ÀÌÁø ¿¬»êÀÚ¿¡ ÇÊ¿äÇÏ´Ù.). ÀÌ »ý¼ºÀÚ´Â ¾î¶² Á¾·ùÀÇ µ¥ÀÌÅÍ°¡ addr ÁÖÀ§¿¡ ÀÖ´ÂÁö¿¡ »ó°ü¾øÀÌ Çã¿ëµÈ´Ù.

ÇÁ·Î±×·¥ º¯¼öµé

»ç¿ë½Ã °¡Àå ÀϹÝÀûÀΠǥÇöÀº ´ëºÎºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ º¯¼öÀ̸§ÀÌ´Ù.

Ç¥Çö½Ä¿¡¼­ º¯¼öµéÀº ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ¿¡¼­ ÀÌÇصȴÙ. (ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.); ±×µéÀº µÑÁß ÇϳªÀ̾î¾ß ÇÑ´Ù.:

¶Ç´Â

ÀÌ°ÍÀº ÇÔ¼ö³»¿¡¼­ Àǹ̰¡ ÀÖ´Ù.

foo (a)
     int a;
{
  bar (a);
  {
    int b = test ();
    bar (b);
  }
}

¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÌ ÀÌ¹Ì ÇÔ¼ö foo ³»¿¡¼­ ½ÇÇàµÉ¶§´Â ¾ðÁ¦³ª º¯¼ö a ¸¦ ½ÃÇèÇÏ°í »ç¿ëÇÒ¼ö ÀÖ´Ù. ±×·¯³ª ¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÌ b °¡ ¼±¾ðµÈ ºí·°³»¿¡¼­ ½ÇÇàµÇ´Â µ¿¾È b ¸¸À» »ç¿ëÇÏ°í °Ë»çÇÒ¼ö ÀÖ´Ù.

¿©±â¿¡´Â ¿¹¿Ü°¡ ÀÖ´Ù: ¿©·¯ºÐÀº ºñ·Ï ÇöÀç ½ÇÇà½ÃÁ¡ÀÌ ÀÌ ÆÄÀÏÀÌ ¾Æ´Ï¶ó ÇÒÁö¶óµµ ¿µ¿ªÀÌ ´ÜÀÏ ¼Ò½º ÆÄÀϳ»ÀÇ º¯¼ö³ª ÇÔ¼ö¸¦ ÂüÁ¶ÇÒ¼ö ÀÖ´Ù. ±×·¯³ª °°Àº À̸§À»(´Ù¸¥ ¼Ò½º ÆÄÀϵ鿡 ÀÖ´Â) °¡Áö°í ÀÖ´Â º¯¼ö³ª ÇÔ¼ö°¡ 1°³ ÀÌ»ó Á¸ÀçÇÒ¼öµµ ÀÖ´Ù. ±×·± °æ¿ì°¡ ¹ß»ýÇÑ´Ù¸é, ±× À̸§À» ÂüÁ¶ÇÏ´Â °ÍÀº ¿¹»óÇÒ¼ö ¾ø´Ù. ¿©·¯ºÐÀÌ ¿øÇϸé, ÄÝ·Ð-ÄݷРǥ±â¸¦ »ç¿ëÇØ Æ¯Á¤ ÇÔ¼ö³ª ÆÄÀϳ» Á¤Àû º¯¼ö¸¦ ±â¼úÇÒ¼ö ÀÖ´Ù.

file::variable
function::variable

¿©±â¼­ file À̳ª function Àº Á¤Àû variable ¸¦ À§ÇÑ ¹®¸Æ À̸§ÀÌ´Ù. ÆÄÀÏ À̸§ÀÇ °æ¿ì¿¡, ¿©·¯ºÐÀº GDB°¡ ´ÜÀÏ ¿öµå·Î¼­ ÆÄÀÏ À̸§À» ÆĽÌÇÏ´Â°É È®½ÇÈ÷ Çϱâ À§ÇØ ÀοëÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. -- ¿¹¸¦ µé¾î, `f2.c'¿¡ Á¤ÀÇµÈ x ÀÇ Àü¿ª °ªÀ» Ãâ·ÂÇϱâ À§ÇØ:

(gdb) p 'f2.c'::x

`::' ÀÇ »ç¿ëÀº C++¿¡¼­ °°Àº Ç¥±âÀÇ ºñ½ÁÇÑ »ç¿ëÀ¸·Î Ãæµ¹µÉ¼ö ÀÖ´Ù. GDB´Â GDB Ç¥Çö½Ä¿¡¼­ C++ÀÇ ¹üÀ§ Çؼ® ¿¬»êÀÚÀÇ »ç¿ëÀ» Áö¿øÇÑ´Ù.

°æ°í: °¡²û, Áö¿ª º¯¼ö´Â ÇÔ¼ö³» ¾î¶² ÁöÁ¡¿¡¼­ À߸øµÈ °ªÀ» °¡Áø°ÍÀ¸·Î ³ªÅ¸ ³¯¼ö ÀÖ´Ù. -- ´ÜÁö »õ·Î¿î ¿µ¿ªÀ¸·Î µé¾î°£ÈÄ Á¾·á µÇ±âÀü¿¡

¿©·¯ºÐÀº ±â°è ¸í·É¾îµéÀ» ´Ü°èÀûÀ¸·Î ÁøÇàÇÒ¶§ ÀÌ ¹®Á¦¸¦ º¼Áöµµ ¸ð¸¥´Ù. ´ëºÎºÐÀÇ ¸Ó½Å¿¡¼­, ÀÌ°ÍÀº ½ºÅà ÇÁ·¹ÀÓ ¼³Á¤À» À§ÇØ 1°³ ÀÌ»óÀÇ ¸í·É¾î¸¦ °¡Áö±â ¶§¹®ÀÌ´Ù. (Áö¿ª º¯¼ö Á¤ÀǸ¦ Æ÷ÇÔÇÏ¿©); ¿©·¯ºÐÀÌ ¸Ó½Å ¸í·É¾îµéÀ» ´Ü°èº°·Î ÁøÇàÇÒ¶§ º¯¼ö µéÀº ½ºÅà ÇÁ·¹ÀÓÀÌ ¿ÏÀüÈ÷ ¸¸µé¾îÁú¶§±îÁö À߸øµÈ °ªµéÀ» °¡Áø °ÍÀ¸·Î ³ªÅ¸³¯¼ö ÀÖ´Ù. Á¾·á½Ã, ±×°ÍÀº º¸Åë ½ºÅà ÇÁ·¹ÀÓÀ» Æı«Çϱâ À§ÇØ 1°³ ÀÌ»óÀÇ ¸Ó½Å ¸í·É¾îµéÀ» °¡Áø´Ù; ¿©·¯ºÐÀÌ ¸í·É¾î ±×·ìÀ» ÅëÇØ ´Ü°èº°·Î ÁøÇàÇÑÈÄ Áö¿ª º¯¼ö Á¤ÀǵéÀº »ç¶óÁø´Ù.

Àΰø ¹è¿­

ÀÌ°ÍÀº ¸Þ¸ð¸®³» °°Àº ŸÀÔÀÇ ¿¬¼ÓÀûÀÎ °´Ã¼µéÀ» Ãâ·ÂÇϴµ¥ À¯¿ëÇÏ´Ù.; ¹è¿­ÀÇ ¼½¼Ç ¶Ç´Â ÇÁ·Î±×·¥³»¿¡ Á¸ÀçÇÏ´Â Æ÷ÀÎÅ͸¦ À§ÇØ µ¿ÀûÀ¸·Î °áÁ¤µÈ ¹è¿­ÀÇ Å©±â

¿©·¯ºÐÀº ÀÌÁø ¿¬»êÀÚ `@'¸¦ »ç¿ëÇÏ¿© artificial array·Î½á ¸Þ¸ð¸®ÀÇ ¿¬¼ÓÀû ±¸°£À» ÂüÁ¶ÇÔÀ¸·Î½á ÀÌ°ÍÀ» ÇÒ¼ö ÀÖ´Ù. operand of `@' ÀÇ ¿ÞÂÊ ÇÇ¿¬»êÀÚ´Â ¹è¿­°ú °¢ °´Ã¼ÀÇ Ã¹¹ø° ¿ø¼ÒÀ̾î¾ß ÇÏ¸ç ¿À¸¥ÂÊ ¿¬»êÀÚ´Â ¹è¿­ÀÇ ¿øÇÏ´Â ±æÀÌÀÌ´Ù. °á°ú´Â ¿ÞÂÊ ÀÎÀÚ Å¸ÀÔ ¸ðµÎÀÇ ¹è¿­ °ªÀÌ´Ù. ù¹ø° ¿ø¼Ò´Â ½ÇÁ¦·Î ¿ÞÂÊ ÀÎÀÚÀÌ´Ù; µÎ¹ø° ¿ø¼Ò´Â ù¹ø° ¿ø¼Ò°¡ °¡Áö°í ÀÖ´Â°Íµé ´ÙÀ½ÀÇ ¸Þ¸ð¸® ¹ÙÀÌÆ®µéÀÌ´Ù. ¿©±â¿¡ ¿¹Á¦°¡ ÀÖ´Ù. ÇÁ·Î±×·¥ÀÌ ´ÙÀ½°ú °°´Ù¸é,

int *array = (int *) malloc (len * sizeof (int));

¿©·¯ºÐÀº array ÀÇ ³»¿ëÀ» Ãâ·ÂÇÒ¼ö ÀÖ´Ù.

p *array@len

`@' ÀÇ ¿ÞÂÊ ÇÇ¿¬»êÀÚ´Â ¸Þ¸ð¸®¿¡ ³²¾Æ ÀÖ´Ù. ÀÌ ¹æ¹ýÀ¸·Î `@' ÇÏ°í °°ÀÌ ¸¸µç ¹è¿­ °ªµéÀº ¹Ø¿¡ ¾´ ´Ù¸¥ ¹è¿­µé ó·³ ÇൿÇÑ´Ù. ±×¸®°í Ç¥Çö½Ä¿¡¼­ »ç¿ëµÉ¶§ Ç¥ÀÎÅ͸¦ ¸¶À½´ë·Î ÇÒ¼ö ÀÖ´Ù. ´ëºÎºÐÀÇ Àΰø ¹è¿­Àº Çϳª¸¦ Ãâ·ÂÇÑÈÄ °ª È÷½ºÅ丮 (Value history ¼½¼ÇÀ» ÂüÁ¶Çضó) ¸¦ ÅëÇؼ­ Ç¥Çö½Ä¿¡¼­ ÀÚÁÖ ³ªÅ¸³­´Ù.

Àΰø ¹è¿­À» ¸¸µé±â À§ÇÑ ´Ù¸¥ ¹æ¹ýÀº Çüº¯È¯¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ÀÌ°ÍÀº ¹è¿­Ã³·³ °ªÀ» ´Ù½Ã Çؼ®ÇÑ´Ù. ±× °ªÀº ¸Þ¸ð¸®¿¡ ÀÖÀ» ÇÊ¿ä°¡ ¾ø´Ù.:

(gdb) p/x (short[2])0x12345678
$1 = {0x1234, 0x5678}

ÆíÇÏ°Ô, ¿©·¯ºÐÀÌ ¹è¿­ÀÇ ±æÀ̸¦ »«´Ù¸é (`(type)[])value') GDB´Â ±× °ªÀ» ä¿ì±â À§ÇØ Å©±â¸¦ °è»êÇÑ´Ù. (`sizeof(value)/sizeof(type)':

(gdb) p/x (short[])0x12345678
$2 = {0x1234, 0x5678}

°¡²û Àΰø ¹è¿­ ¸ÞÄ«´ÏÁòÀº Äè ÃæºÐÇÏÁö ¾Ê´Ù; º¹ÀâÇÑ µ¥ÀÌÅÍ ±¸Á¶Ã¼¿¡¼­ Èï¹Ì·Î¿î ¿ø¼ÒµéÀº ±ÙÁ¢ÇØ ÀÖÁö ¾ÊÀ»¼ö ÀÖ´Ù. -- ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ ¹è¿­³» Æ÷ÀÎÅ͵éÀÇ °ª¿¡ Èï¹Ì°¡ ÀÖ´Ù¸é. ÀÌ·¯ÇÑ »óȲ¿¡¼­ À¯¿ëÇÑ ÀÛ¾÷Àº óÀ½ Èï¹Ì·Î¿î °ªÀ» Ãâ·ÂÇϴ ǥÇö½Ä¿¡¼­ Ä«¿îÅͷνá Æí¸® º¯¼ö (Æí¸® º¯¼ö(Convenience variables) ¼½¼ÇÀ» ÂüÁ¶Çضó.) ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ´Ù. ±×¸®°í RET ¸¦ ÅëÇؼ­ Ç¥Çö½ÄÀ» ¹Ýº¹ÇÏ´Â °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ¹è¿­ dtab¸¦ °¡Áö°í ÀÖ°í fv ÇʵåÀÇ °ª¿¡ Èï¹Ì°¡ ÀÖ´Ù°í °¡Á¤ÇÏÀÚ. ¿©±â¿¡ ÀÖ´Â °ÍÀº ¿©·¯ºÐÀÌ Å¸ÀÌÇÎÇØ¾ß ÇÒ ¿¹Á¦ÀÌ´Ù:

set $i = 0
p dtab[$i++]->fv
RET
RET
...

Ãâ·Â Çü½Ä

±âº»ÀûÀ¸·Î, GDB´Â µ¥ÀÌÅÍ Å¸ÀÔ¿¡ µû¶ó¼­ °ªÀ» Ãâ·ÂÇÑ´Ù. °¡²û ÀÌ°ÍÀº ¿©·¯ºÐÀÌ ¿øÇÏ´Â °á°ú°¡ ¾Æ´Ò¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº 16Áø¼ö·Î ¼ýÀÚ³ª 10Áø¼ö·Î Æ÷ÀÎÅ͸¦ Ãâ·ÂÇϱ⠿øÇÒ¼ö ÀÖ´Ù. ¶Ç´Â ¿©·¯ºÐÀº ¹®ÀÚ¿­À̳ª ¸í·É¾î·Î½á ¾î¶² ÁÖ¼ÒÀÇ ¸Þ¸ð¸®¿¡ ÀÖ´Â µ¥ÀÌÅ͸¦ º¸±â¸¦ ¿øÇÒÁö ¸ð¸¥´Ù. ÀÌ°ÍÀ» Çϱâ À§ÇØ ¿©·¯ºÐÀº °ªÀ» Ãâ·ÂÇÒ¶§ Ãâ·Â Çü½Ä À» ÁöÁ¤ÇØ¾ß ÇÑ´Ù.

Ãâ·Â Çü½ÄÀÇ °¡Àå °£´ÜÇÑ »ç¿ëÀº ÀÌ¹Ì °è»êµÈ °ªÀ» Ãâ·ÂÇÏ´Â ¹æ¹ýÀÌ´Ù. ÀÌ°ÍÀº print ¸í·É¾î¿Í ½½·¡½¬(/) ±×¸®°í Çü½Ä¹®ÀÚµé·Î ÇàÇØÁø´Ù. Áö¿øµÇ´Â Ãâ·Â¹®ÀÚ´Â ´ÙÀ½°ú °°´Ù:

x
Á¤¼ö·Î½á °ªÀ» °£ÁÖÇÑ´Ù. ±×¸®°í 16Áø¼ö·Î Á¤¼ö¸¦ Ãâ·ÂÇÑ´Ù.
d
ºÎȣȭµÈ 10Áø¼ö Á¤¼ö·Î Ãâ·ÂÇÑ´Ù.
u
ºÎȣȭµÇÁö ¾ÊÀº 10Áø¼ö Á¤¼ö·Î Ãâ·ÂÇÑ´Ù.
o
8Áø¼ö Á¤¼ö¸¦ Ãâ·ÂÇÑ´Ù.
t
ÀÌÁø¼ö·Î Á¤¼ö¸¦ Ãâ·ÂÇÑ´Ù. ¹®ÀÚ `t' ´Â "two" ¸¦ ³ªÅ¸³½´Ù. (1)
a
16Áø¼ö·Î ÁÖ¼Ò¿Í ±×¸®°í °¡Àå °¡±î¿î Àü ½Éº¼¿¡¼­ ¿ÀÇÁ¼ÂÀ» Ãâ·ÂÇÑ´Ù. ¿©·¯ºÐÀº ¾ËÁö ¸øÇÏ´Â ÁÖ¼Ò(ÇÔ¼ö¿¡¼­)°¡ À§Ä¡ÇØ ÀÖ´Â °÷À» ¹ß°ßÇϱâ À§ÇØ »ç¿ëµÈ ÀÌ Çü½ÄÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù.
(gdb) p/a 0x54320
$3 = 0x54320 <_initialize_vx+396>
c
Á¤¼ö·Î °£ÁÖÇÏ°í ¹®ÀÚ »ó¼ö·Î½á Ãâ·ÂÇÑ´Ù.
f
ºÎµ¿ ¼Ò¼öÁ¡ ¼ö·Î °ªÀ» °£ÁÖÇÏ°í ÀüÇüÀûÀÎ ºÎµ¿ ¼Ò¼öÁ¡ ¹®Á¢À» »ç¿ëÇÏ¿© Ãâ·ÂÇÑ´Ù.

¿¹¸¦ µé¾î, 16Áø¼ö·Î ÇÁ·Î±×·¥ Ä«¿îÅÍ(PC)¸¦ Ãâ·ÂÇϱâ À§ÇØ ´ÙÀ½À» ŸÀÔÇضó. (Registers ¼½¼ÇÀ» ÂüÁ¶Çضó)

p/x $pc

½½·¢½¬(/)Àü¿¡ ¾î¶² °ø°£µµ À־´Â ¾ÈµÈ´Ù.: ÀÌ°ÍÀº GDBÀÇ ¸í·É¾î À̸§µéÀÌ ½½·¡½¬(/)¸¦ Æ÷ÇÔÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

´Ù¸¥ Çü½ÄÀ¸·Î °ª È÷½ºÅ丮¿¡ ÀÖ´Â ¸¶Áö¸· °ªÀ» ´Ù½Ã Ãâ·ÂÇϱâ À§ÇØ, ¿©·¯ºÐÀº ´ÜÁö Çü½ÄÀ» °¡Áö°í ±×¸®°í Ç¥Çö½ÄÀº °¡ÁöÁö ¾Ê°í print ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, `p/x' ´Â 16Áø¼ö·Î ¸¶Áö¸· °ªÀ» Ãâ·ÂÇÑ´Ù.

¸Þ¸ð¸® °Ë»çÇϱâ

¿©·¯ºÐÀº ÇÁ·Î±×·¥ÀÇ µ¥ÀÌÅÍ Å¸ÀÔ¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í ¿©·¯ Çü½ÄÀ¸·Î ¸Þ¸ð¸®¸¦ °Ë»çÇϱâ À§ÇØ x ¸í·É¾î¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù.

x/nfu addr
x addr
x
¸Þ¸ð¸®¸¦ °Ë»çÇϱâ À§ÇØ x ¸í·É¾î¸¦ »ç¿ëÇضó.

n, f, ±×¸®°í u ´Â ¾ó¸¶³ª ¸¹Àº ¸Þ¸ð¸®¸¦ ³ªÅ¸³»¾ß ÇÏ´ÂÁö¿Í ±×°ÍÀ» Çü½ÄÈ­ ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â ¿É¼Ç ÀÎÀÚµéÀÌ´Ù. ; addr ´Â ¿©·¯ºÐÀÌ ³ªÅ¸³¾ ¸Þ¸ð¸®ÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ Áִ ǥÇö½ÄÀÌ´Ù. ¿©·¯ºÐÀº ±âº»°ªÀ¸·Î nfu¸¦ »ç¿ëÇÑ´Ù¸é, ¿©·¯ºÐÀº `/' ¸¦ ŸÀÔÇÒ ÇÊ¿ä°¡ ¾ø´Ù. addr ¸¦ À§ÇÑ Æí¸®ÇÑ ±âº» °ªÀ» À§ÇÑ ¿©·¯°³ÀÇ ¸í·É¾îÁýÇÕÀÌ ÀÖ´Ù.

n, ¹Ýº¹ ¼ö
¹Ýº¹ ¼ö´Â 10Áø Á¤¼öÀÌ´Ù; ±âº»°ªÀº 1ÀÌ´Ù. ÀÌ°ÍÀº ³ªÅ¸³¾ ¸Þ¸ð¸® (u À¸·Î ¼¼¾îÁü)°¡ ¾ó¸¶³ª ¸¹ÀºÁö¸¦ ÁöÁ¤ÇÑ´Ù.
f, Ãâ·Â Çü½Ä
Ãâ·Â Çü½ÄÀº print `s' (³Î·Î ³¡³­ ¹®ÀÚ¿­), ¶Ç´Â `i' (±â°è ¸í·É¾î)°¡ »ç¿ëÇÑ Çü½ÄÁß ÇϳªÀ̸ç, ±âº»Àº `x' (16Áø¼ö) ÀÌ´Ù. ±âº» °ªÀº ¿©·¯ºÐÀÌ x ³ª print¸¦ »ç¿ëÇÒ¶§¸¶´Ù ¹Ù²ï´Ù.
u, ´ÜÀ§ Å©±â
´ÜÀ§ Å©±â´Â ´ÙÀ½°ú °°´Ù.
b
¹ÙÀÌÆ®.
h
halfword(2¹ÙÀÌÆ®)
w
¿öµå(4¹ÙÀÌÆ®). ÀÌ°ÍÀÌ ±âº»°ªÀÌ´Ù.
g
Giant-word(8¹ÙÀÌÆ®)
¿©·¯ºÐÀÌ x·Î ´ÜÀ§ Å©±â¸¦ ÁöÁ¤ÇÒ¶§¸¶´Ù, ±× Å©±â°¡ ¿©·¯ºÐÀÌ x ¸¦ »ç¿ëÇÏ´Â ´ÙÀ½¹ø ±âº» ´ÜÀ§°¡ µÈ´Ù. (`s' ±×¸®°í `i' Çü½ÄÀ» À§ÇØ, ´ÜÀ§ Å©±â´Â ¹«½ÃµÇ¸ç Á¤»óÀûÀ¸·Î ¾²¿©ÁöÁö ¾Ê´Â´Ù.)
addr, ½ÃÀÛ Ãâ·Â ÁÖ¼Ò
addr ´Â ¿©·¯ºÐÀÌ ¸Þ¸ð¸® Ãâ·ÂÀ» ½ÃÀÛÇϵµ·Ï GDB¿¡°Ô ¿øÇÑ ÁÖ¼ÒÀÌ´Ù. Ç¥Çö½ÄÀº Æ÷ÀÎÅÍ °ªÀ» °¡Áú ÇÊ¿ä°¡ ¾ø´Ù; ±×°ÍÀº Ç×»ó ¸Þ¸ð¸® ¹ÙÀÌÆ®ÀÇ Á¤¼ö ÁÖ¼Ò°ªÀ¸·Î Çؼ®µÈ´Ù. Ç¥Çö½Ä¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¿øÇÑ´Ù¸é Ç¥Çö½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó. addr À» À§ÇÑ ±âº» °ªÀº °Ë»çµÈ ¸¶Áö¸· ÁÖ¼Ò°ª ´ÙÀ½ÀÌ´Ù. - ±×·¯³ª ¸î¸î ´Ù¸¥ ¸í·É¾îµéµµ ¶ÇÇÑ ±âº» ÁÖ¼Ò¸¦ ¼³Á¤ÇÑ´Ù: info breakpoints (¸¶Áö¸· breakpoint ¸®½ºÆ®ÀÇ ÁÖ¼Ò¸¦ À§ÇØ), info line (¶óÀÎÀÇ ½ÃÀÛ ÁÖ¼Ò¸¦ À§ÇØ), ±×¸®°í print (¸¸ÀÏ ¿©·¯ºÐÀÌ ¸Þ¸ð¸®¿¡¼­ ±× °ªÀ» »ç¿ëÇÑ´Ù¸é).

¿¹¸¦ µé¾î, `x/3uh 0x54320' ´Â ºÎȣȭµÇÁö ¾ÊÀº 10Áø Á¤¼ö (`u') ¿Í ½ÃÀÛ ÁÖ¼Ò 0x54320 ·Î Çü½ÄÈ­µÈ ¸Þ¸ð¸®ÀÇ 3 halfwords (h) ¸¦ Ãâ·ÂÇϱ⸦ ¿ä±¸ÇÏ´Â °ÍÀÌ´Ù. `x/4xw $sp' ´Â 16Áø¼ö·Î (¿©±â¼­, `$sp' ;Registers ¼½¼ÇÀ» ÂüÁ¶Çضó.) ½ºÅà Æ÷ÀÎÅÍÀÇ 4 ¿öµå ¸Þ¸ð¸®¸¦ (`w') Ãâ·ÂÇÑ´Ù.

´ÜÀ§ Å©±â¸¦ °¡¸®Å°´Â ¹®ÀÚµé°ú Ãâ·Â Çü½ÄÀ» °¡¸®Å°´Â ¹®ÀÚµé°ú´Â ¸ðµÎ ±¸º°µÇ±â ¶§¹®¿¡, ¿©·¯ºÐÀº óÀ½¿¡ ¿À´Â °ÍÀÌ ´ÜÀ§ Å©±â³ª Çü½ÄÀÎÁö¸¦ ±â¾ïÇÒ ÇÊ¿ä°¡ ¾ø´Ù. Ãâ·Â Ç¥±â `4xw' ±×¸®°í `4wx' ´Â Á¤È®È÷ °°Àº °ÍÀÌ´Ù. (±×·¯³ª, Ä«¿îÆ® n ´Â óÀ½¿¡ ¿Í¾ß ÇÑ´Ù; `wx4' ´Â ÀÛµ¿ÇÏÁö ¾Ê´Â´Ù.)

ºñ·Ï ´ÜÀ§ Å©±â u °¡ Çü½Ä `s' ±×¸®°í `i' ¿¡¼­ ¹«½ÃµÈ´Ù ÇÒÁö¶óµµ, ¿©·¯ºÐÀº ¿©ÀüÈ÷ Ä«¿îÆ® n ¸¦ »ç¿ëÇÏ±æ ¿øÇÒÁö ¸ð¸¥´Ù.; ¿¹¸¦ µé¾î, `3i' ´Â ¿©·¯ºÐÀÌ ¾î¶² ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÏ¿© 3°³ÀÇ ±â°è¾î¸¦ º¸±æ ¿øÇѴٴ°ÍÀ» °¡¸®Å²´Ù. ¸í·É¾î disassemble Àº ±â°è¾î¸¦ °Ë»çÇÏ´Â ¼±ÅÃÀû ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ¼Ò½º¿Í ±â°è ÄÚµå ¼½¼ÇÀ» ÂüÁ¶Çضó.

x ¸¦ À§ÇÑ ÀÎÀÚµéÀÇ ±âº»°ªÀº ¿©·¯ºÐÀÌ x ¸¦ »ç¿ëÇÒ ¶§¸¶´Ù ÃÖ¼ÒÇÑÀÇ °Ë»ç·Î ¸Þ¸ð¸® ½ºÄ³´×À» ½±°Ô ÇÒ¼ö ÀÖµµ·Ï µðÀÚÀÎ µÇ¾ú´Ù.. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ `x/3i addr' ·Î ¼¼°³ÀÇ ±â°è ¸í·É¾î¸¦ °Ë»çÇÑ´Ù¸é, ¿©·¯ºÐÀº ´ÜÁö `x/7' ·Î ´ÙÀ½ 7°³¸¦ °Ë»çÇÒ¼ö ÀÖ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ x ¸í·É¾î¸¦ »ç¿ëÇϱâ À§ÇØ RET ¸¦ »ç¿ëÇÑ´Ù¸é, ¹Ýº¹ ¼ö n ´Â ´Ù½Ã »ç¿ëµÈ´Ù; x ÀÇ ¿¬¼ÓÀûÀÎ »ç¿ëÀ» À§ÇØ ´Ù¸¥ ÀÎÀÚµéÀº ±âº»°ªÀ» °®´Â´Ù.

x ¸í·É¾î·Î Ãâ·ÂµÇ´Â ÁÖ¼Ò¿Í ³»¿ëÀº ³Ê¹« ÀÚÁÖ »ç¿ëµÇ°í ÀϹÝÀû ¹æ¹ýÀ¸·Î °¡Áú¼ö Àֱ⠶§¹®¿¡ °ª È÷½ºÅ丮¿¡ ÀúÀåµÇÁö ¾Ê´Â´Ù. ´ë½Å¿¡, GDB´Â Æí¸® º¯¼ö $_ and $__ ÀÇ °ªÀ¸·Î¼­ Ç¥Çö½Ä¿¡¼­ À̾îÁö´Â »ç¿ëÀ» À§ÇØ ÀÌ °ªµéÀ» »ç¿ëÇÒ¼ö ÀÖ´Ù. x ¸í·É¾î ÈÄ, °Ë»çµÈ ¸¶Áö¸· ÁÖ¼Ò´Â Æí¸®º¯¼ö $_ À¸·Î Ç¥Çö½Ä¿¡¼­ »ç¿ëÇÒ¼ö ÀÖ´Ù. ÁÖ¼ÒÀÇ ³»¿ëÀº Æí¸® º¯¼ö $__ À¸·Î ÀÌ¿ëµÉ¼ö ÀÖ´Ù.

¸¸ÀÏ x ¸í·É¾î°¡ ¹Ýº¹ ¼ö¸¦ °¡Áö°í ÀÖ´Ù¸é, ÀúÀåµÈ ÁÖ¼Ò¿Í ³»¿ëµéÀº ¸¶Áö¸· ¸Þ¸ð¸® ´ÜÀ§¿¡¼­ Ãâ·ÂµÈ´Ù; ÀÌ°ÍÀº ¸¸ÀÏ ¸î¸î ´ÜÀ§µéÀÌ Ãâ·ÂÀÇ ¸¶Áö¸· ¶óÀο¡ Ãâ·ÂµÈ´Ù¸é Ãâ·ÂµÉ ¸¶Áö¸· ÁÖ¼Ò¿Í °°Áö ¾Ê´Ù.

ÀÚµ¿ µð½ºÇ÷¹ÀÌ

¸¸ÀÏ ¿©·¯ºÐÀÌ Ç¥Çö½Ä °ªÀ» ÀÚÁÖ Ãâ·ÂÇÏ±æ ¿øÇÑ´Ù¸é(¹Ù²î´Â ¹æ¹ýÀ» ¾Ë±â À§ÇØ), GDB°¡ ÇÁ·Î±×·¥À» ¸ØÃ⶧¸¶´Ù ÇØ´ç °ªÀ» Ãâ·ÂÇϵµ·Ï Çϱâ À§ÇØ Ç¥Çö½ÄÀ» automatic display list ¿¡ Ãß°¡ÇÏ±æ ¿øÇÒÁöµµ ¸ð¸¥´Ù. ¸®½ºÆ®¿¡ Ãß°¡µÈ °¢ Ç¥Çö½ÄÀº ±¸º°Çϱâ À§ÇØ ¼ýÀÚ°¡ ÁÖ¾îÁø´Ù; ¸®½ºÆ®¿¡¼­ Ç¥Çö½ÄÀ» Á¦°ÅÇÏÇÒ·Á¸é ¿©·¯ºÐÀº ¼ýÀÚ¸¦ ÁöÁ¤ÇÏ¸é µÈ´Ù. ÀÚµ¿ µð½ºÇ÷¹ÀÌ´Â ¾Æ·¡Ã³·³ º¸ÀδÙ:

2: foo = 38
3: bar[5] = (struct hack *) 0x3804

ÀÌ µð½ºÇ÷¹ÀÌ´Â Ç׸ñ ¼ö, Ç¥Çö½Ä ±×¸®°í ÇöÀç °ªÀ» º¸¿©ÁØ´Ù. ¿©·¯ºÐÀÌ x ³ª print À» »ç¿ëÇÏ¿© ¿©·¯ ¿ä±¸¸¦ µð½ºÇ÷¹ÀÌ ÇϵíÀÌ, ¿©·¯ºÐÀº ¿©·¯ºÐÀÌ ¿øÇÏ´Â Ãâ·Â Çü½ÄÀ» ÁöÁ¤ ÇÒ¼ö ÀÖ´Ù. ; »ç½Ç, display ´Â ¿©·¯ºÐÀÇ Çü½Ä ÁöÁ¤¿¡ µû¶ó¼­ print ³ª x ¸¦ »ç¿ëÇÒÁö¸¦ °áÁ¤ÇÑ´Ù. -- ¿©·¯ºÐÀÌ ´ÜÀ§ Å©±â¸¦ ÁöÁ¤Çϰųª x °¡ Áö¿øÇÏ´Â µÎ Çü½Ä (`i' and `s') Áß Çϳª¶ó¸é GDB´Â x ¸¦ »ç¿ëÇÑ´Ù.; ±×·¸Áö ¾ÊÀ¸¸é GDB´Â print ¸¦ »ç¿ëÇÑ´Ù.

display exp
¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ÀÌ ¸ØÃ⶧¸¶´Ù Ãâ·ÂÇϱâ À§ÇØ Ç¥Çö½Ä ¸®½ºÆ®¿¡ Ç¥Çö½Ä exp ¸¦ Ãß°¡ÇÑ´Ù.Ç¥Çö½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó. ¸¸ÀÏ ¿©·¯ºÐÀÌ display¸¦ »ç¿ëÇÑÈÄ ´Ù½Ã RETÀ» ´©¸¥´Ù¸é display ´Â ¹Ýº¹µÇÁö ¾Ê´Â´Ù.
display/fmt exp
fmt·Î Ãâ·Â Æ÷¸Ë¸¸À» ÁöÁ¤ÇÏ°í Å©±â¿Í Ä«¿îÆ®´Â ÁöÁ¤ÇÏÁö ¾Ê±â À§ÇØ, Ç¥Çö½Ä exp¸¦ ÀÚµ¿ µð½ºÇ÷¹ÀÌ ¸®½ºÆ®¿¡ Ãß°¡ÇÑ´Ù. ±×·¯³ª ÁöÁ¤µÈ Æ÷¸Ë fmtÀ¸·Î ¸Å¹ø Ãâ·ÂÇϱâ À§ÇØ Àç¹è¿­ ÇÑ´Ù. Ãâ·Â Çü½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó.
display/fmt addr
fmt `i'³ª `s', ¶Ç´Â ´ÜÀÏ Å©±â³ª À¯´ÖÀÇ ¼ö¸¦ Æ÷ÇÔÇϱâ À§ÇØ, ÇÁ·Î±×·¥ÀÌ ¸ØÃ⶧¸¶´Ù °Ë»çÇϱâ À§ÇÑ ¸Þ¸ð¸® Áּҷνá Ç¥Çö½Ä addr¸¦ Ãß°¡Çضó. °Ë»ç´Â `x/fmt addr'À» ÀǹÌÇÑ´Ù. ¸Þ¸ð¸® °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

¿¹¸¦ µé¾î, `display/i $pc'´Â ½ÇÇàÀÌ ¸ØÃ⶧¸¶´Ù ½ÇÇàµÇ´Â ±â°è ¸í·É¾î¸¦ º¸±â À§ÇØ À¯¿ëÇÏ´Ù. (`$pc' ´Â ÇÁ·Î±×·¥ Ä«¿îÅÍÀÇ ÀϹÝÀû À̸§ÀÌ´Ù; Registers ¼½¼ÇÀ» ÂüÁ¶Çضó.).

undisplay dnums...
delete display dnums...
µð½ºÇ÷¹À̸¦ À§ÇØ Ç¥Çö½Ä ¸®½ºÆ®¿¡¼­ Ç׸ñ ¼ö dnums ¸¦ Á¦°ÅÇÑ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ »ç¿ëÈÄ RET ¸¦ ´©¸£Áö ¾Ê´Â´Ù¸é undisplay ´Â ¹Ýº¹µÇÁö ¾Ê´Â´Ù. (±×·¸Áö ¾ÊÀ¸¸é ¿©·¯ºÐÀº `No display number ...' ¿¡·¯¸¦ °®´Â´Ù.)
disable display dnums...
Ç׸ñ ¼ö dnums ÀÇ µð½ºÇ÷¹À̸¦ ºÒ°¡´ÉÇÏ°Ô ¼³Á¤ÇÑ´Ù. µð½ºÇ÷¹ÀÌ°¡ ºÒ°¡´ÉÇÏ°Ô µÈ Ç׸ñÀº ÀÚµ¿ÀûÀ¸·Î Ãâ·ÂµÇÁö ¾ÊÁö¸¸ ÀØÇôÁöÁö´Â ¾Ê´Â´Ù. ³ªÁß¿¡ ´Ù½Ã °¡´ÉÇÏ°Ô µÈ´Ù.
enable display dnums...
Ç׸ñ ¼ö dnums ÀÇ µð½ºÇ÷¹À̸¦ °¡´ÉÇÏ°Ô ÇÑ´Ù. ¿©·¯ºÐÀÌ ÁöÁ¤ÇÒ¶§°¡Áö Ç¥Çö½ÄÀÇ µð½ºÇ÷¹À̸¦ ÀÚµ¿À¸·Î ´Ù½Ã Çϴ°ÍÀº È¿°úÀûÀÌ´Ù.
display
¸®½ºÆ®¿¡ Àִ ǥÇö½ÄÀÇ ÇöÀç °ªÀ» Ãâ·ÂÇϸç, ±×°ÍÀº ÇÁ·Î±×·¥ÀÌ ¸ØÃ⶧¸¶´Ù ÇàÇØÁø´Ù.
info display
Ç׸ñ ¼ö¿Í ÇØ´ç °ªÀº º¸¿©ÁÖÁö ¾Ê°í ÀÚµ¿ÀûÀ¸·Î Ãâ·ÂÇϱâ À§ÇØ Àü¿¡ ¼³Á¤ÇÑ Ç¥Çö½Ä ¸®½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ°ÍÀº disableµÈ Ç¥Çö½ÄÀ» Æ÷ÇÔÇÑ´Ù. ÀÌ°ÍÀº ¶ÇÇÑ Áö±Ý ¹Ù·Î µð½ºÇ÷¹À̵ÇÁö ¾Ê´Â Ç¥Çö½ÄÀ» Ãâ·ÂÇÑ´Ù. ¿Ö³ÄÇÏ¸é ±×µéÀº ÇöÀç ÀÌ¿ëÇÒ¼ö ¾ø´Â ÀÚµ¿ º¯¼ö¸¦ °¡¸®Å°±â ¶§¹®ÀÌ´Ù.

µð½ºÇ÷¹ÀÌ Ç¥Çö½ÄÀÌ Áö¿ª º¯¼ö¸¦ °¡¸®Å²´Ù¸é, º¯¼ö°¡ ¼³Á¤µÈ ¹®¸Æ¿Ü¿¡¼­´Â Ç¥Çö½ÄÀº ÀÌÇØ°¡ µÇÁö ¾Ê´Â´Ù. ±×·± Ç¥Çö½ÄÀº ½ÇÇàÀÌ º¯¼öµéÁß Çϳª°¡ Á¤ÀǵǾî ÀÖÁö ¾ÊÀº ¹®¸Æ¾È¿¡ µé¾î°¥¶§ disableµÈ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ ÀÎÀÚ last_char ¸¦ °¡Áö´Â ÇÔ¼ö³»¿¡ ÀÖ´Â µ¿¾È, ¸í·É¾î display last_char ¸¦ Áشٸé, GDB´Â ÇÁ·Î±×·¥ÀÌ ±× ÇÔ¼ö³»¿¡¼­ ¸ØÃß±â À§ÇØ °è¼ÓÇÏ´Â µ¿¾È ÀÌ ÀÎÀÚ¸¦ µð½ºÇ÷¹ÀÌÇÑ´Ù. ±×°ÍÀÌ ±×¹ÛÀÇ °÷¿¡¼­ ¸ØÃá´Ù¸é --- (¿©±â¿¡´Â º¯¼ö last_char °¡ ¾ø´Ù) --- µð½ºÇ÷¹ÀÌ´Â ÀÚµ¿À¸·Î disable µÈ´Ù. ÇÁ·Î±×·¥ÀÌ last_char °¡ ÀǹÌÀÖ´Â °÷¿¡¼­ ¸ØÃß´Â ´ÙÀ½¹ø¿¡ ¿©·¯ºÐÀº ´Ù½Ã µð½ºÇ÷¹ÀÌ Ç¥Çö½ÄÀ» °¡´ÉÇÏ°Ô ÇÒ¼ö ÀÖ´Ù.

Print ¼³Á¤Çϱâ

GDB´Â ¹è¿­, ±¸Á¶Ã¼ ±×¸®°í ½Éº¼µéÀ» Ãâ·ÂÇÏ´Â ¹æ¹ýÀ» Á¦¾îÇϱâ À§ÇØ ´ÙÀ½ ¹æ¹ýÀ» Á¦°øÇÑ´Ù.

ÀÌµé ¼³Á¤Àº ¾î¶² ¾ð¾î¿¡¼­µçÁö ÇÁ·Î±×·¥ µð¹ö±ëÀ» À§ÇØ À¯¿ëÇÏ´Ù:

set print address
set print address on
GDB´Â ½ºÅà ¹ßÀÚÃë, ±¸Á¶Ã¼ °ª, Æ÷ÀÎÅÍ °ª, breakpoints µîµîÀÇ ÁÖ¼Ò¸¦ ³ªÅ³¾¶§ Á¶Â÷ À̵éÀÇ À§Ä¡¸¦ º¸¿©ÁÖ´Â ¸Þ¸ð¸® ÁÖ¼Ò¸¦ Ãâ·ÂÇÑ´Ù. ±âº»°ªÀº on ÀÌ´Ù. ¿¹¸¦ µé¾î, ÀÌ°ÍÀº ½ºÅà ÇÁ·¹ÀÓÀÌ set print address onó·³ º¸À̵µ·Ï ÇÑ °ÍÀÌ´Ù:
(gdb) f
#0  set_quotes (lq=0x34c78 "<<", rq=0x34c88 ">>")
    at input.c:530
530         if (lquote != def_lquote)
set print address off
³»¿ëµéÀ» Ãâ·ÂÇÒ¶§ ÁÖ¼Ò¸¦ Ãâ·ÂÇÏÁö ¸¶¶ó. ¿¹¸¦ µé¾î, ÀÌ°ÍÀº set print address off ·Î Ãâ·ÂµÈ °°Àº ½ºÅà ÇÁ·¹ÀÓÀÌ´Ù.:
(gdb) set print addr off
(gdb) f
#0  set_quotes (lq="<<", rq=">>") at input.c:530
530         if (lquote != def_lquote)
¿©·¯ºÐÀº GDB ÀÎÅÍÆäÀ̽º¿¡¼­ÀÇ ¸ðµç ±â°è ÀÇÁ¸ÀûÀÎ µð½ºÇ÷¹À̸¦ ÁÙÀ̱â À§ÇØ `set print address off' ¸¦ »ç¿ëÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, print address offÀ¸·Î ¿©·¯ºÐÀº ¸ðµç ¸Ó½ÅÀÇ backtrace¸¦ À§ÇØ °°Àº ÅؽºÆ®¸¦ °¡Áú¼öÀÖ´Ù. -- ±×µéÀÌ Æ÷ÀÎÅÍ ÀÎÀÚ¿Í °ü°è°¡ ÀÖµçÁö ¾øµçÁö
show print address
ÁÖ¼Ò¸¦ Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.

GDB°¡ »ó¡ ÁÖ¼Ò¸¦ Ãâ·ÂÇÒ¶§, ±×°ÍÀº º¸Åë °¡Àå °¡±î¿î ½Éº¼ ´õÇϱ⠿ÀÇÁ¼ÂÀ» Ãâ·ÂÇÑ´Ù. ¸¸ÀÏ ±× ½Éº¼ÀÌ ÁÖ¼Ò¸¦ ±¸º°ÇÏÁö ¸øÇÑ´Ù¸é(¿¹¸¦ µé¾î, ÀÌ°ÍÀº ¿µ¿ªÀÌ ´ÜÀÏ ¼Ò½ºÀÎ À̸§ÀÌ´Ù), ¿©·¯ºÐÀº ¸íÈ®È÷ ÇÒ ÇÊ¿ä°¡ ÀÖ´Ù. ÀÌ°ÍÀ» Çϱâ À§ÇÑ ÇÑ°¡Áö ¹æ¹ýÀº info lineÀ̸ç, ¿¹·Î´Â `info line *0x4537'ÀÌ´Ù. ¼±ÅÃÀûÀ¸·Î, ¿©·¯ºÐÀº ½Éº¼¸¯ ÁÖ¼Ò¸¦ Ãâ·ÂÇÒ¶§ ¼Ò½º ÆÄÀÏ°ú ¶óÀÎ ¼ö¸¦ Ãâ·ÂÇϱâ À§ÇØ GDB¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù.

set print symbol-filename on
¼Ò½º ÆÄÀÏ À̸§°ú ÁÖ¼ÒÀÇ »ó¡ ÇüÅ¿¡ ÀÖ´Â »ó¡ÀÇ ¶óÀÎ ¼ö¸¦ Ãâ·ÂÇϵµ·Ï GDB¿¡°Ô ¸»Çضó.
set print symbol-filename off
¼Ò½º ÆÄÀÏ À̸§°ú »óÁöÀÇ ¶óÀÎ ¼ö¸¦ Ãâ·ÂÇÏÁö ¸¶¶ó. ÀÌ°ÍÀº ±âº»°ªÀÌ´Ù.
show print symbol-filename
GDB°¡ ¼Ò½º ÆÄÀÏ À̸§°ú ÁÖ¼ÒÀÇ »ó¡ ÇüÅ¿¡ ÀÖ´Â »ó¡ÀÇ ¶óÀÎ ¼ö¸¦ Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.

»ó¡ ÆÄÀÏ À̸§°ú ¶óÀÎ ¼ö¸¦ º¸¿©Áִµ¥ À¯¿ëÇÑ ´Ù¸¥ »óȲÀº Äڵ带 ¿ª ¾î¼ÀºíÇÒ ¶§ÀÌ´Ù.; GDB´Â ¿©·¯ºÐ¿¡°Ô °¢ ¸í·É¾î¿¡ »óÀÀÇÏ´Â ¶óÀÎ ¼ö¿Í ¼Ò½º ÆÄÀÏÀ» º¸¿©ÁØ´Ù.

¶ÇÇÑ, ¸¸ÀÏ Ãâ·ÂµÇ´Â ÁÖ¼Ò°¡ °¡Àå °¡±î¿î Ãʱ⠽ɺ¼°ú »ó´çÈ÷ °¡±õ´Ù¸é ¿©·¯ºÐÀº »ó¡Àû ÇüŸ¦ º¸±æ ¿øÇÒÁöµµ ¸ð¸¥´Ù.

set print max-symbolic-offset max-offset
¸¸ÀÏ °¡Àå °¡±î¿î Ãʱ⠽ɺ¼°ú ÁÖ¼Ò »çÀÌÀÇ ¿ÀÇÁ¼ÂÀÌ max-offset º¸´Ù Àû´Ù¸é ÁÖ¼ÒÀÇ »ó¡Àû ÇüŸ¦ Ãâ·ÂÇϵµ·Ï GDB¿¡°Ô ¸»ÇÑ´Ù. ±âº» °ªÀº 0À̸ç ÀÌ°ÍÀº ¾î¶² ½Éº¼ÀÌ ±×°Í¿¡ ¿ì¼±ÇÑ´Ù¸é ÁÖ¼ÒÀÇ »ó¡Àû ÇüŸ¦ Ãâ·ÂÇϵµ·Ï GDB¿¡°Ô ¸»ÇÑ´Ù.
show print max-symbolic-offset
GDB°¡ »ó¡Àû ÁÖ¼Ò¿¡¼­ Ãâ·ÂµÇ´Â ÃÖ´ë ¿ÀÇÁ¼ÂÀÌ ¾ó¸¶³ª Å«Áö ¹°¾îº»´Ù.

¿©·¯ºÐÀÌ Æ÷ÀÎÅ͸¦ °¡Áö°í ÀÖ°í ±×°ÍÀÌ °¡¸®Å°´Â °÷ÀÌ È®½ÇÇÏÁö ¾Ê´Ù¸é, `set print symbol-filename on' ¸¦ ½ÃµµÇضó. ±×·¯¸é ¿©·¯ºÐÀº `p/a pointer' ¸¦ »ç¿ëÇÏ¿© ±×°ÍÀÌ °¡¸®Å°´Â °÷ÀÇ À̸§°ú º¯¼öÀÇ ¼Ò½º ÆÄÀÏ À§Ä¡¸¦ °áÁ¤ÇÒ¼ö ÀÖ´Ù. ÀÌ°ÍÀº »ó¡Àû ÇüÅ¿¡ ÀÖ´Â ÁÖ¼Ò¸¦ Çؼ®ÇÑ´Ù. ¿¹¸¦ µé¾î, GDB´Â `hi2.c' ¿¡ Á¤ÀÇµÈ º¯¼ö ptt °¡ ´Ù¸¥ º¯¼ö t ¸¦ °¡¸®Å°°í ÀÖ´Â °ÍÀ» º¸¿©ÁØ´Ù.:

(gdb) set print symbol-filename on
(gdb) p/a ptt
$4 = 0xe008 <t in hi2.c>

°æ°í: Áö¿ª º¯¼ö¸¦ °¡¸®Å°´Â Æ÷ÀÎÅͶ§¹®¿¡, `p/a' ´Â ºñ·Ï Àû´çÇÑ set print ¿É¼ÇÀÌ ÄÑÁ® ÀÖ´ÙÇÏ´õ¶óµµ ÂüÁ¶µÇ´Â ½Éº¼ À̸§°ú ÆÄÀÏÀ̸§À» º¸¿©ÁÖÁö ¾Ê´Â´Ù.

´Ù¸¥ ¼³Á¤µéÀº ´Ù¸¥ Á¾·ùÀÇ °´Ã¼µéÀÌ Ãâ·ÂµÇ´Â ¹æ¹ýÀ» Á¦¾îÇÑ´Ù.

set print array
set print array on
º¸±âÁÁÀº ¹è¿­·Î Ãâ·ÂÇÑ´Ù. ÀÌÇüÅ´ ÀбⰡ ¸Å¿ì ÆíÇÏÁö¸¸ ´õ ¸¹Àº °ø°£À» »ç¿ëÇÑ´Ù. ±âº»°ªÀº ²¨Á®ÀÖ´Ù.
set print array off
¾ÐÃàµÈ Çü½ÄÀÇ ¹è¿­·Î ¹Ù²Û´Ù. Return to compressed format for arrays.
show print array
¹è¿­À» ³ªÅ¸³»±â À§ÇØ ¼±ÅÃµÈ °ÍÀÌ ¾ÐÃàµÈ Æ÷¸ËÀÎÁö º¸±âÁÁ°Ô ³ª¿­µÈ Æ÷¸ËÀÎÁö º¸¿© ÁØ´Ù.
set print elements number-of-elements
GDB °¡ ¹è¿­ ¿ø¼Ò¸¦ ¾ó¸¶³ª ¸¹ÀÌ Ãâ·ÂÇÒÁö ±× Á¦ÇÑ °ªÀ» ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ GDB°¡ ¸¹Àº ¹è¿­À» Ãâ·ÂÇÑ´Ù¸é, GDB´Â set print elements ¸í·É¾î ·Î ¼³Á¤µÈ ¿ø¼ÒÀÇ ¼ö¸¦ Ãâ·ÂÇÑÈÄ Ãâ·ÂÀ» ¸ØÃá´Ù. ÀÌ Á¦ÇÑ°ªÀº ¶ÇÇÑ ¹®ÀÚ¿­ Ãâ·Â¿¡µµ Àû¿ëµÈ´Ù. number-of-elements ¸¦ 0À¸·Î ¼³Á¤ÇÏ´Â °ÍÀº Ãâ·ÂÀÌ ¹«Á¦ÇÑÀ̶ó´Â ÀǹÌÀÌ´Ù.
show print elements
GDB °¡ Ãâ·ÂÇÒ ¹è¿­ ¿ø¼ÒÀÇ ¼ö¸¦ º¸¿©ÁØ´Ù. ¼ýÀÚ°¡ 0À̶ó¸é, Ãâ·ÂÀº ¹«Á¦ÇÑÀÌ´Ù.
set print null-stop
ùÀ½ NULLÀ» ¸¸³µÀ»¶§ ¹è¿­ÀÇ ¹®ÀÚµé Ãâ·ÂÀ» ¸ØÃßµµ·Ï GDB¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ°ÍÀº Ä¿´Ù¶õ ¹è¿­ÀÌ ÂªÀº ¹®ÀÚ¿­¸¸À» Æ÷ÇÔÇÒ¶§ À¯¿ëÇÏ´Ù.
set print pretty on
¾Æ·¡¿Í °°ÀÌ ¶óÀδç ÇϳªÀÇ ¸â¹ö¸¦ °¡Áø ¿À¸ñÇÑ ÇüÅÂÀÇ ±¸Á¶Ã¼¸¦ Ãâ·ÂÇϵµ·Ï GDB¸¦ ¼³Á¤ÇÑ´Ù.:
$1 = {
  next = 0x0,
  flags = {
    sweet = 1,
    sour = 1
  },
  meat = 0x54 "Pork"
}
set print pretty off
´Ù·¡¿Í °°ÀÌ °£°áÇÑ ÇüÅ·Π±¸Á¶Ã¼¸¦ Ãâ·ÂÇϵµ·Ï GDB¸¦ ¼³Á¤ÇÑ´Ù:
$1 = {next = 0x0, flags = {sweet = 1, sour = 1}, \
meat = 0x54 "Pork"}
ÀÌ°ÍÀÌ ±âº» Çü½ÄÀÌ´Ù.
show print pretty
±¸Á¶Ã¼ Ãâ·ÂÀ» À§ÇØ GDB°¡ »ç¿ëÇÏ´Â Çü½ÄÀÌ ¹«¾ùÀÎÁö º¸¿©ÁØ´Ù.
set print sevenbit-strings on
´ÜÁö 7-ºñÆ® ¹®ÀÚµé »ç¿ëÀ» Ãâ·ÂÇÑ´Ù; ÀÌ ¿É¼ÇÀÌ ÄÑÁ® ÀÖ´Ù¸é, GDB ´Â Ç¥±â \nnn¸¦ »ç¿ëÇÏ´Â 9-ºñÆ® ¹®ÀÚ(¹®ÀÚ¿­À̳ª ¹®ÀÚ °ª)µéÀ» º¸¿©ÁØ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ ¿µ¾î·Î(ASCII) ÀÛ¾÷ÇÑ´Ù¸é ±×¸®°í ¿©·¯ºÐÀÌ Á¦Á¶Àڷνᳪ "meta" ºñÆ®·Î½á ¹®ÀÚµéÀÇ ÃÖ»óÀ§ ºñÆ®¸¦ »ç¿ëÇÑ´Ù¸é ÀÌ ¼³Á¤Àº ÃÖ»óÀÌ´Ù.
set print sevenbit-strings off
8 ºñÆ® ¹®ÀÚ¸¦ Ãâ·ÂÇÑ´Ù. ÀÌ°ÍÀº ´õ ¸¹Àº ±¹Á¦ ¹®ÀÚ ÁýÇÕµéÀÇ »ç¿ëÀ» Çã¿ëÇÏ¸ç ±âº» °ªÀÌ´Ù.
show print sevenbit-strings
7-ºñÆ® ¹®ÀÚ¿­¸¸À» GDB °¡ Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.
set print union on
±¸Á¶Ã¼ ¾È¿¡ Æ÷ÇÔµÈ À¯´Ï¿ÂÀ» Ãâ·ÂÇϵµ·Ï GDB¸¦ ¼³Á¤ÇÑ´Ù. ÀÌ°ÍÀº ±âº» ¼³Á¤ÀÌ´Ù.
set print union off
±¸Á¶Ã¼ ¾È¿¡ Æ÷ÇÔµÈ À¯´Ï¿ÂÀ» Ãâ·ÂÇÏÁö ¾Êµµ·Ï GDB¸¦ ¼³Á¤ÇÑ´Ù.
show print union
±¸Á¶Ã¼ ¾È¿¡ Æ÷ÇÔµÈ À¯´Ï¿ÂÀ» Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ GDB¿¡°Ô ¹°¾îº»´Ù. ¿¹¸¦ µé¾î, ÁÖ¾îÁø ¼±¾ðÀº
typedef enum {Tree, Bug} Species;
typedef enum {Big_tree, Acorn, Seedling} Tree_forms;
typedef enum {Caterpillar, Cocoon, Butterfly} 
              Bug_forms;

struct thing {
  Species it;
  union {
    Tree_forms tree;
    Bug_forms bug;
  } form;
};

struct thing foo = {Tree, {Acorn}};
ÀÌ´Ù. set print union on ¼³Á¤½Ã `p foo' Àº ´ÙÀ½À» Ãâ·ÂÇÑ´Ù.
$1 = {it = Tree, form = {tree = Acorn, bug = Cocoon}}
±×¸®°í set print union off ¼³Á¤½Ã ´ÙÀ½À» Ãâ·ÂÇÑ´Ù.
$1 = {it = Tree, form = {...}}

ÀÌµé ¼³Á¤Àº C++ ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ¶§ Èï¹Ì·Ó´Ù.

set print demangle
set print demangle on
¾î¼Àºí·¯¿Í type-safe linage¸¦ À§ÇÑ ¸µÄ¿¿¡ Àü´ÞµÇ´Â ÀÎÄÚµå("mangled") Çüź¸´Ù ¼Ò½º ÇüÅÂÀÇ C++ À̸§À» Ãâ·ÂÇÑ´Ù. ±âº» °ªÀº `on' ÀÌ´Ù.
show print demangle
C++ À̸§À» mangleÀ̳ª demangle ÇüÅ·ΠÃâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.
set print asm-demangle
set print asm-demangle on
¾î¼Àºí·¯ Äڵ尡 ¸í·É¾î ¿ª¾î¼Àºí·Î Ãâ·ÂµÉ¶§Á¶Â÷, mangle Çü½Äº¸´Ù´Â ¼Ò½º ÇüÅ¿¡ ÀÖ´Â C++ À̸§À» Ãâ·ÂÇÑ´Ù. ±âº»°ªÀº offÀÌ´Ù.
show print asm-demangle
¾î¼Àºí¸® ¸®½ºÆ®³» C++À̸§À» mangle·Î ÇÒÁö demangle ÇüÅ·ΠÃâ·ÂÇÒÁö¸¦ º¸¿©ÁØ´Ù.
set demangle-style style
C++ À̸§À» ³ªÅ³»±â À§ÇØ ¿©·¯ Á¾·ùÀÇ ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ »ç¿ëµÇ´Â ÀÎÄÚµù ±¸Á¶¸¦ ¼±ÅÃÇÑ´Ù. styleÀº ´ÙÀ½°ú °°´Ù:
auto
ÇÁ·Î±×·¥À» Á¶»çÇϱâ À§ÇØ GDB°¡ ÀÎÄÚµù ½ºÅ¸ÀÏÀ» ¼±ÅÃÇϵµ·Ï Çã¿ëÇÑ´Ù.
gnu
GNU C++ ÄÄÆÄÀÏ·¯(g++) ÀÎÄÚµù ¾Ë°í¸®Áò±â¹ÝÀ¸·Î µðÄÚµùÇÑ´Ù. ÀÌ°ÍÀÌ ±âº»ÀÌ´Ù.
lucid
Lucid C++ ÄÄÆÄÀÏ·¯(lcc) ÀÎÄÚµù ¾Ë°í¸®Áò±â¹ÝÀ¸·Î µðÄÚµùÇÑ´Ù.
arm
C++ Annotated Reference Manual¿¡¼­ »ç¿ëµÇ´Â ¾Ë°í¸®ÁòÀ¸·Î µðÄÚµùÇÑ´Ù. °æ°í:ÀÌ ¼³Á¤Àº cfront·Î »ý¼ºµÈ ½ÇÇàÆÄÀÏÀ» µð¹ö±ëÇϱ⿡ ÃæºÐÇÏÁö ¾Ê´Ù. GDB´Â ±×°ÍÀ» Çã¿ëÇϱâ À§ÇØ ´õ ³ôÀº Çâ»óÀ» ¿ä±¸ÇÑ´Ù.
foo
Çü½Ä ¸®½ºÆ®¸¦ º¸¿©ÁØ´Ù.
show demangle-style
µðÄÚµù C++ ½Éº¼µéÀ» À§ÇØ ÇöÀç µðÄÚµùµÈ ½ºÅ¸ÀÏÀ» Ãâ·ÂÇÑ´Ù.
set print object
set print object on
°´Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Ãâ·ÂÇÒ¶§, °¡»ó ÇÔ¼ö Å×À̺íÀ» »ç¿ëÇÏ´Â declared ŸÀÔº¸´Ù´Â actual ŸÀÔÀÇ °´Ã¼¸¦ ½Äº°ÇÑ´Ù.
set print object off
°¡»ó ÇÔ¼ö Å×ÀÌºí¿¡ ´ëÇÑ ÂüÁ¶ ¾øÀÌ, ¼±¾ðµÈ ŸÀÔÀÇ °´Ã¼¸¸À» Ãâ·ÂÇÑ´Ù. ÀÌ ¿É¼ÇÀº ±âº»ÀûÀ¸·Î ¼ÂÆõȴÙ.
show print object
ÇöÀç ¶Ç´Â ¼±¾ðµÈ °´Ã¼ ŸÀÔÀ» Ãâ·ÂÇÒÁö¸¦ º¸¿©ÁØ´Ù.
set print static-members
set print static-members on
C++ °´Ã¼¸¦ º¸¿©ÁÙ¶§ Á¤Àû ¸â¹ö¸¦ Ãâ·ÂÇÑ´Ù. ±âº»Àº on ÀÌ´Ù.
set print static-members off
C++ °´Ã¼¸¦ º¸¿©ÁÙ¶§ Á¤Àû ¸â¹öµéÀ» Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.
show print static-members
C++ Á¤Àû ¸â¹öµéÀ» Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.
set print vtbl
set print vtbl on
C++ °¡»ó ÇÔ¼ö Å×À̺íÀ» Ãâ·ÂÇÑ´Ù. ±âº»Àº offÀÌ´Ù.
set print vtbl off
C++ °¡»ó ÇÔ¼ö Å×À̺íÀ» Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.
show print vtbl
C++ °¡»óÇÔ¼ö Å×À̺íÀ» Ãâ·ÂÇÒÁö ¾ÈÇÒÁö¸¦ º¸¿©ÁØ´Ù.

°ª È÷½ºÅ丮

print ¸í·É¾î°¡ Ãâ·ÂÇÑ °ªµéÀº GDB °ª È÷½ºÅ丮¿¡ ÀúÀåµÈ´Ù. ÀÌ°ÍÀº ´Ù¸¥ Ç¥Çö½Ä¿¡¼­ ÀÌ °ªµéÀ» »ç¿ëÇϱæ Çã¿ëÇÑ´Ù. °ªµéÀº ½Éº¼ Å×À̺íÀÌ ´Ù½Ã ÀÐÇôÁö°Å³ª ¹ö·ÁÁú¶§±îÁö À¯ÁöµÈ´Ù.(¿¹·Î file³ª symbol-file ¸í·É¾î.) ½Éº¼ Å×À̺íÀÌ º¯ÇÒ¶§, °ª È÷½ºÅ丮´Â ¹ö·ÁÁø´Ù. ¿Ö³ÄÇÏ¸é °ªµéÀº ½Éº¼ Å×ÀÌºí¿¡ Á¤ÀÇµÈ Å¸ÀÔ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Æ÷ÇÔÇϱ⠶§¹®ÀÌ´Ù.

Ãâ·ÂµÈ °ªµéÀº ¿©·¯ºÐÀÌ ÂüÁ¶ÇÒ¼ö ÀÖ´Â È÷½ºÅ丮 ¼ö¸¦ ÁØ´Ù. À̵é È÷½ºÅ丮 ¼ö´Â 1 ºÎÅÍ ½ÃÀÛÇÏ´Â ¿¬¼ÓµÈ Á¤¼öµéÀÌ´Ù. print´Â °ª ¾Õ¿¡ `$num = '¸¦ Ãâ·ÂÇÏ¿© °ª¿¡ ÇÒ´çµÈ È÷½ºÅ丮 ¼ö¸¦ º¸¿©ÁØ´Ù.;¿©±â¼­ num´Â È÷½ºÅ丮 ¼öÀÌ´Ù.

Àü °ªÀ» ÂüÁ¶Çϱâ À§ÇØ, `$' ´ÙÀ½¿¡ °ª È÷½ºÅ丮 ¼ö¸¦ »ç¿ëÇضó. $´Â È÷½ºÅ丮³» °¡Àå ÃÖ±Ù °ªÀ» ÂüÁ¶ÇÑ´Ù. ±×¸®°í $$´Â ±× Àü °ªÀ» ÂüÁ¶ÇÑ´Ù. $$n´Â ³¡¿¡¼­ n ¹ø° °ªÀ» ÂüÁ¶ÇÑ´Ù.; $$2´Â $$¿¡ ¿ì¼±ÇÏ´Â °ªÀ̸ç, $$1´Â $$°ú °°°í $$0´Â $°ú °°´Ù.

¿¹¸¦ µé¾î, ¿©·¯ºÐÀÌ ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Ãâ·ÂÇÑ´Ù°í ÇÏÀÚ. ±×¸®°í ±¸Á¶Ã¼ÀÇ ³»¿ëÀ» º¸±æ ¿øÇÑ´Ù°í ÇÏÀÚ.

p *$

¸¸ÀÏ ¿©·¯ºÐÀÌ next°¡ ´ÙÀ½ ±¸Á¶Ã¼¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ °¡¸®Å°´Â ±¸Á¶Ã¼ üÀÎÀ» °¡Áö°í ÀÖ´Ù¸é, ¿©·¯ºÐÀº ´ÙÀ½°ú °°ÀÌÇÏ¿© ´ÙÀ½°ÍÀÇ ³»¿ëÀ» Ãâ·ÂÇÒ¼ö ÀÖ´Ù:

p *$.next

¿©·¯ºÐÀº ÀÌ ¸í·É¾î¸¦ ¹Ýº¹ÇÏ¿© üÀγ» ¿¬¼ÓÀûÀÎ ¸µÅ©µéÀ» Ãâ·ÂÇÒ¼ö ÀÖ´Ù.--¿©·¯ºÐÀº ´ÜÁö RET¸¸ ŸÀÌÇÎÇÏ¸é µÈ´Ù.

È÷½ºÅ丮´Â Ç¥Çö½ÄÀÌ ¾Æ´Ï¶ó °ªÀ» ÀúÀåÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇضó. xÀÇ °ªÀº 4ÀÌ°í ¿©·¯ºÐÀº ÀÌµé ¸í·É¾î¸¦ ŸÀÌÇÎÇÒ¼ö ÀÖ´Ù:

print x
set x=5

±×¸®°í ºñ·Ï xÀÇ °ªÀÌ ¹Ù²ï´Ù ÇÒÁö¶óµµ, print ¸í·É¾î¿¡ ÀÇÇØ °ª È÷½ºÅ丮¿¡ ÀúÀåµÈ °ªÀº 4·Î ³²´Â´Ù.

show values
item ³Ñ¹ö¿Í ÇÔ²² °ª È÷½ºÅ丮¿¡ ÀÖ´Â ¸¶Áö¸· 10°³ÀÇ °ªÀ» Ãâ·ÂÇÑ´Ù. show values´Â °ªÀ» ¹Ù²Û´Ù´Â°ÍÀ» Á¦¿ÜÇÏ°í, ÀÌ°ÍÀº `p $$9'¸¦ 10¹ø ¹Ýº¹Çϴ°Ͱú °°´Ù.
show values n
È÷½ºÅ丮 item ¼ö n¸¦ Áß½ÉÀ¸·Î 10 È÷½ºÅ丮 °ªÀ» Ãâ·ÂÇÑ´Ù.
show values +
¸¶Áö¸·À¸·Î Ãâ·ÂµÈ °ªµé ´ÙÀ½ÀÇ 10°³ÀÇ È÷½ºÅ丮 °ªµéÀ» Ãâ·ÂÇÑ´Ù. ¸¸ÀÏ ´õ ¸¹Àº °ªµéÀ» ÀÌ¿ëÇÒ¼ö ¾ø´Ù¸é, show values +´Â Ãâ·ÂÀ» º¸¿©ÁÖÁö ¾Ê´Â´Ù.

show values n¸¦ ¹Ýº¹Çϱâ À§ÇØ RET¸¦ ´©¸£´Â °ÍÀº Á¤È®È÷ `show values +'°ú °°Àº È¿°ú¸¦ °¡Áø´Ù.

Æí¸® º¯¼ö

GDB´Â ¿©·¯ºÐÀÌ °ªÀ» °¡Áö°í ³ªÁß¿¡ ÂüÁ¶ÇÒ¼ö ÀÖµµ·Ï GDB³»¿¡¼­ »ç¿ëÇÒ¼ö ÀÖ´Â Æí¸® º¯¼ö¸¦ Á¦°øÇÑ´Ù. ÀÌµé º¯¼öµéÀº GDB³»¿¡ Àü¿ªÀûÀ¸·Î Á¸ÀçÇÑ´Ù;ÀÌµé º¯¼ö´Â ÇÁ·Î±×·¥ÀÇ ÀϺκÐÀÌ ¾Æ´Ï¸ç ¼³Á¤µÈ Æí¸® º¯¼öµéÀº ÇÁ·Î±×·¥ÀÇ ½ÇÇà¿¡ Á÷Á¢ÀûÀÎ ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. ÀÌ°ÍÀÌ ¿©·¯ºÐÀÌ Æí¸®º¯¼ö¸¦ ÀÚÀ¯½º·´°Ô »ç¿ëÇÒ¼ö ÀÖ´Â ÀÌÀ¯ÀÌ´Ù.

Æí¸® º¯¼ö´Â Á¢µÎ»ç·Î `$'¸¦ °¡Áø´Ù. ¸¸ÀÏ Æí¸®º¯¼ö°¡ ¹Ì¸® Á¤ÀÇµÈ ±â°è-ÀÇÁ¸Àû ·¹Áö½ºÅÍ À̸§( ·¹Áö½ºÅÍ ¼½¼ÇÀ» ÂüÁ¶Çضó.)Áß Çϳª°¡ ¾Æ´Ï¶ó¸é, `$'´ÙÀ½ÀÇ À̸§µéÀº Æí¸® º¯¼ö·Î »ç¿ëµÈ´Ù. (´ëÁ¶ÀûÀ¸·Î, °ª È÷½ºÅ丮 ÂüÁ¶µéÀº `$' ´ÙÀ½¿¡ numbersÀÌ´Ù. °ª È÷½ºÅ丮 ¼½¼ÇÀ» ÂüÁ¶Çضó.)

¿©·¯ºÐÀº ÇÁ·Î±×·¥³» º¯¼ö¸¦ ¼³Á¤ÇÏ´Â °Íó·³, Ç¥Çö½ÄÀ» ÇÒ´çÇÏ¿© °ªÀ» Æí¸®º¯¼ö¿¡ ÀúÀåÇÒ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î:

set $foo = *object_ptr

ÀÌ°ÍÀº object_ptr°¡ °¡¸®Å°´Â °´Ã¼¿¡ Æ÷ÇÔµÈ °ªÀ» $foo¿¡ ÀúÀåÇÑ´Ù.

óÀ½¿¡ Æí¸® º¯¼ö¸¦ »ç¿ëÇÒ·Á¸é º¯¼ö¸¦ ¸¸µé¾î¶ó. ±×·¯³ª ±× °ªÀº ¿©·¯ºÐÀÌ »õ·Î¿î °ªÀ» ÇÒ´çÇÒ¶§±îÁö voidÀ̾î¾ß ÇÑ´Ù. ¿©·¯ºÐÀº ³ªÁß¿¡ ¾î¶²¶§µçÁö ´Ù¸¥ ÇÒ´çÀ¸·Î °ªÀ» ¼öÁ¤ÇÒ¼ö ÀÖ´Ù.

Æí¸® º¯¼öµéÀº °íÁ¤µÈ ŸÀÔÀÌ ¾ø´Ù. ¿©·¯ºÐÀº ºñ·Ï ±× º¯¼ö°¡ ÀÌ¹Ì ´Ù¸¥ ŸÀÔÀÇ °ªÀ» °¡Áö°í ÀÖ´Ù ÇÒÁö¶óµµ, ±¸Á¶Ã¼, ¹è¿­À» Æ÷ÇÔÇÏ¿© ¾î¶² ŸÀÔÀ̵çÁö Æí¸® º¯¼ö¸¦ ÇÒ´çÇÒ¼ö ÀÖ´Ù. Ç¥Çö½Ä ó·³ »ç¿ëµÉ¶§, Æí¸® º¯¼ö´Â ÇöÀç °ªÀÇ Å¸ÀÔÀ» °¡Áö°í ÀÖ´Ù.

show convenience
Áö±Ý±îÁö »ç¿ëµÈ Æí¸® º¯¼öÀÇ ¸®½ºÆ®¿Í ±× °ªµéÀ» º¸¿©ÁØ´Ù. °£´ÜÈ÷ show con·Î ÇÒ¼ö ÀÖ´Ù.

Æí¸® º¯¼ö¸¦ »ç¿ëÇϱâ À§ÇÑ ¹æ¹ýÁß Çϳª´Â Áõ°¡ÇÏ´Â Ä«¿îÅͳª ³ª¾Æ°¡´Â Æ÷ÀÎÅͷνáÀÌ´Ù. ¿¹¸¦ µé¾î, ±¸Á¶Ã¼ ¹è¿­ÀÇ ¿¬¼ÓÀûÀÎ ¿ä¼Ò¿¡¼­ ÇʵåµéÀ» Ãâ·ÂÇϱâ À§ÇØ:

set $i = 0
print bar[$i++]->contents

RET·Î ±× ¸í·É¾î¸¦ ¹Ýº¹Çضó.

¸î¸î Æí¸® º¯¼öµéÀº ÀÚµ¿ÀûÀ¸·Î GDB°¡ ¸¸µé¸ç »ç¿ëÇÒ¼ö ÀÖµµ·Ï °ªµéÀ» ÁØ´Ù.

$_
º¯¼ö $_´Â °Ë»çµÈ ¸¶Áö¸· ÁÖ¼Ò(¸Þ¸ð¸® °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)¿¡ ´ëÇÑ x ¸í·É¾î¿¡ ÀÇÇØ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤µÈ´Ù. °Ë»çÇϱâ À§ÇØ x¸¦ À§ÇØ ±âº» ÁÖ¼Ò °ªµéÀ» Á¦°øÇÏ´Â ´Ù¸¥ ¸í·É¾îµéÀº ±× ÁÖ¼Ò¿¡ $_¸¦ ¼³Á¤ÇÑ´Ù.: ÀÌµé ¸í·É¾î´Â info line¿Í info breakpoint ¸¦ Æ÷ÇÔÇÑ´Ù. $_ ŸÀÔÀº $__ ŸÀÔÀ» °¡¸®Å°´Â °æ¿ì¿¡ x ¸í·É¾î¿¡ ÀÇÇØ ¼³Á¤µÉ¶§¸¦ Á¦¿ÜÇÏ°í, void *ÀÌ´Ù.
$__
º¯¼ö $__´Â °Ë»çµÈ ¸¶Áö¸· ÁÖ¼Ò¿¡¼­ °ªÀ» ¹ß°ßÇϱâ À§ÇØ ÀÚµ¿ÀûÀ¸·Î x¸í·É¾î¿¡ ÀÇÇØ ¼³Á¤µÈ´Ù. ŸÀÔÀº µ¥ÀÌÅÍ°¡ Ãâ·ÂµÇ´Â Æ÷¸Ë°ú ¸ÅÄ¡½ÃÅ°±â À§ÇØ ¼±ÅõȴÙ.
$_exitcode
º¯¼ö $_exitcode´Â µð¹ö±ëµÇ´Â ÇÁ·Î±×·¥À» ³¡¸¶Ä¥¶§ Á¾·á Äڵ带 ÀÚµ¿ÀûÀ¸·Î ¼³Á¤ÇÑ´Ù.

·¹Áö½ºÅ͵é

¿©·¯ºÐÀº `$'¿¡ À̸§À» °¡Áö´Â º¯¼öó·³, Ç¥Çö½Ä¿¡¼­ ¸Ó½Å ·¹Áö½ºÅÍ ³»¿ëµéÀ» ÂüÁ¶ÇÒ¼ö ÀÖ´Ù. ·¹Áö½ºÅÍ À̸§µéÀº °¢ ¸Ó½Å¸¶´Ù ´Ù¸£´Ù.; ¸Ó½Å¿¡¼­ »ç¿ëµÇ´Â À̸§À» º¸±âÀ§ÇØ info registers¸¦ »ç¿ëÇضó.

info registers
ºÎµ¿ ¼Ò¼öÁ¡ ·¹Áö½ºÅÍ(¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ³»¿¡¼­)¸¦ Á¦¿ÜÇÑ ¸ðµç ·¹Áö½ºÅ͵éÀÇ À̸§°ú °ªµéÀ» Ãâ·ÂÇÑ´Ù.
info all-registers
ºÎµ¿ ¼ö¼öÁ¡ ·¹Áö½ºÅ͸¦ Æ÷ÇÔÇÑ ¸ðµç ·¹Áö½ºÅÍÀÇ À̸§°ú °ªµéÀ» Ãâ·ÂÇÑ´Ù.
info registers regname ...
°¢ ÁöÁ¤µÈ ·¹Áö½ºÅÍ regnameÀÇ »ó´ëÀû °ªµéÀ» Ãâ·ÂÇÑ´Ù. ¼¼ºÎÀûÀ¸·Î Åä·ÐÇÏ´Â °Íó·³, ·¹Áö½ºÅÍ °ªµéÀ» º¸Åë ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ °ª¿¡ »ó´ëÀûÀÌ´Ù. regname´Â ¾Õ¿¡ `$'°¡ ÀÖµç ¾øµç, ¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ¸Ó½Å¿¡¼­ À¯È¿ÇÑ ·¹Áö½ºÅÍ À̸§ÀÌ´Ù.

GDB´Â ´ëºÎºÐÀÇ ¸Ó½Å¿¡¼­ ÀÌ¿ë(Ç¥Çö½Ä¿¡¼­)ÇÒ¼ö ÀÖ´Â 4°³ÀÇ "Ç¥ÁØ" ·¹Áö½ºÅÍ À̸§À» °¡Áö°í ÀÖ´Ù.--±×°ÍµéÀº ¾ÆÅ°ÅØÃÄÀÇ °ø½Ä ³»Àå ·¹Áö½ºÅ͵é°ú Ãæµ¹ÇÏÁö ¾ÊÀ»¶§´Â ¾ðÁ¦³ª. ·¹Áö½ºÅÍ À̸§ $pc°ú $sp´Â ÇÁ·Î±×·¥ Ä«¿îÅÍ ·¹Áö½ºÅÍ¿Í ½ºÅà Æ÷ÀÎÅ͸¦ À§ÇØ »ç¿ëµÈ´Ù. $fp´Â ÇöÀç ½ºÅà ÇÁ·¹ÀÓ¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ Æ÷ÇÔÇÑ ·¹Áö½ºÅÍ¿¡ »ç¿ëµÇ¸ç $ps´Â ÇÁ·Î¼¼¼­ »óŸ¦ Æ÷ÇÔÇÏ´Â ·¹Áö½ºÅÍ¿¡ »ç¿ëµÈ´Ù. ¿¹¸¦ µé¾î, ¿©·¯ºÐÀº Çí»ç°ªÀ¸·Î ÇÁ·Î±×·¥ Ä«¿îÅ͸¦ Ãâ·ÂÇÒ¼ö ÀÖ´Ù.

p/x $pc

¶Ç´Â ´ÙÀ½¿¡ ½ÇÇàÇÒ ¸í·É¾î¸¦ Ãâ·ÂÇÑ´Ù.

x/i $pc

¶Ç´Â ½ºÅà Æ÷ÀÎÅÍ(2)¿¡ 4¸¦ ´õÇÑ´Ù.

set $sp += 4

°¡´ÉÇÒ¶§´Â ¾ðÁ¦³ª, À̵é 4°³ÀÇ Ç¥ÁØ ·¹Áö½ºÅÍ À̸§µéÀº ºñ·Ï ¸Ó½ÅÀÌ ´Ù¸¥ ³»Àå ´Ï¸ð´ÐÀ̶ó ÇÒÁö¶óµµ Ãæµ¹ÀÌ ¾ø´Â ÇÑ, ÀÌ¿ëÇÒ¼ö ÀÖ´Ù. info registers ¸í·É¾î´Â °ø½ÄÀûÀÎ À̸§À» º¸¿©ÁØ´Ù. ¿¹¸¦ µé¾î, SPARC¿¡¼­ info registers´Â $psr·Î½á ÇÁ·Î¼¼¼­ »óÅ ·¹Áö½ºÅ͸¦ Ãâ·ÂÇÏÁö¸¸, ¿©·¯ºÐÀº $ps·Î ÀÌ ·¹Áö½ºÅ͸¦ ÂüÁ¶ÇÒ¼ö ÀÖ´Ù.

GDB´Â ·¹Áö½ºÅÍ°¡ ÀÌ·± ¹æ¹ýÀ¸·Î °Ë»çµÉ¶§ Á¤¼ö·Î½á ÀÏ¹Ý ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» °í·ÁÇÑ´Ù. ¸î¸î ¸Ó½ÅÀº ºÎµ¿ ¼Ò¼öÁ¡À» °¡Áú¼ö Àִ Ưº°ÇÑ ·¹Áö½ºÅ͸¦ °¡Áö°í ÀÖ´Ù; ÀÌµé ·¹Áö½ºÅ͵éÀº ºÎµ¿ ¼Ò¼öÁ¡ °ªÀ» °¡Áø°ÍÀ¸·Î °í·ÁÇÑ´Ù. ºÎµ¿ ¼ö¼­Á¡ °ªÃ³·³ ÀÏ¹Ý ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» ÂüÁ¶ÇÒ ¹æ¹ýÀÌ ¾ø´Ù.(ºñ·Ï ¿©·¯ºÐÀÌ `print/f $regname'·Î ºÎµ¿ ¼Ò¼öÁ¡Ã³·³ print¸¦ ÇÒ¼ö ÀÖ´Ù ÇÒÁö¶óµµ)

¸î¸î ·¹Áö½ºÅ͵éÀº "raw"¿Í "virtual" µ¥ÀÌÅÍ Æ÷¸ËÀ» ±¸ºÐÇÑ´Ù. OS¿¡ ÀúÀåµÇ´Â ·¹Áö½ºÅÍ ³»¿ëÀÇ µ¥ÀÌÅÍ Æ÷¸ËÀº ÇÁ·Î±×·¥ÀÌ º¸´Â °Í°ú °°Áö ¾Ê´Ù´Â ÀǹÌÀÌ´Ù. ¿¹¸¦ µé¾î, 68881 ºÎµ¿ ¼Ò¼öÁ¡ ÇÁ·Î¼¼¼­ÀÇ ·¹Áö½ºÅ͵éÀº Ç×»ó "extended" (raw) Çü½ÄÀ¸·Î ÀúÀåµÈ´Ù. ±×·¯³ª ¸ðµç C ÇÁ·Î±×·¥µéÀº "double" (virtual) Çü½ÄÀ¸·Î ÀÛµ¿µÈ´Ù. ±×·± °æ¿ì¿¡, GDB´Â º¸Åë virtual Çü½Ä(ÇÁ·Î±×·¥ÀÌ ÀÌÇØÇÒ¼ö ÀÖ´Â Çü½Ä)¸¸À¸·Î ÀÛµ¿ÇÑ´Ù. ±×·¯³ª info registers ¸í·É¾î´Â µÎ°³ Çü½ÄÀ¸·Î µ¥ÀÌÅ͸¦ Ãâ·ÂÇÑ´Ù.

º¸Åë, ·¹Áö½ºÅÍ °ªÀº ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓ(ÇÁ·¹ÀÓ ¼±ÅÃÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.)°ú °ü°è°¡ ÀÖ´Ù. ÀÌ°ÍÀº ¸¸ÀÏ ¸ðµç ½ºÅà ÇÁ·¹ÀÓÀÌ Á¾·áµÇ°í ÀúÀåµÈ ·¹Áö½ºÅÍ°¡ ÀçÀúÀåµÇ¸é Æ÷ÇÔµÈ Á¦Áö½ºÅÍ °ªÀ» °¡Áú¼ö ÀÖ´Ù´Â°É ÀǹÌÇÑ´Ù. Çϵå¿þ¾î ·¹Áö½ºÅÍÀÇ ³»¿ëÀ» º¸±â À§ÇØ, ¿©·¯ºÐÀº °¡Àå ³»ºÎ ÇÁ·¹ÀÓ(`frame 0')À» ¼±ÅÃÇØ¾ß ÇÑ´Ù.

±×·¯³ª, GDB´Â ÄÄÆÄÀÏ·¯¿¡ ÀÇÇØ ¸¸µé¾îÁø ±â°è¾î Äڵ忡¼­ ·¹Áö½ºÅÍ°¡ ÀúÀåµÇ´Â °÷À» ÁÙ¿©¾ß ÇÑ´Ù. ¸¸ÀÏ ¸î¸î ·¹Áö½ºÅÍ°¡ ÀúÀåµÇÁö ¾Ê´Â´Ù¸é, ¶Ç´Â ¸¸ÀÏ GDB°¡ ÀúÀåµÈ ·¹Áö½ºÅÍ¿¡ À§Ä¡ÇÒ¼ö ¾ø´Ù¸é, ¼±ÅÃµÈ ½ºÅà ÇÁ·¹ÀÓÀº Â÷À̸¦ ¸¸µéÁö ¾Ê´Â´Ù.

set rstack_high_address address
AMD 29000 Æйи® ÇÁ·Î¼¼¼­¿¡¼­, ·¹Áö½ºÅ͵éÀº ºÐ¸®µÈ "register stack"¿¡ ÀúÀåµÈ´Ù. GDB°¡ ÀÌ ½ºÅÃÀÇ Å©±â¸¦ °áÁ¤ÇÒ ¹æ¹ýÀº ¾ø´Ù. º¸Åë, GDB´Â ½ºÅÃÀº "large enough"¶ó°í¸¸ °¡Á¤ÇÑ´Ù. ¸¸ÀÏ ÇÊ¿äÇÏ´Ù¸é, ¿©·¯ºÐÀº set rstack_high_address ¸í·É¾î·Î ·¹Áö½ºÅÍ ½ºÅÃÀÇ ³¡ ÁÖ¼Ò¸¦ ÁöÁ¤ÇÏ¿© ÀÌ ¹®Á¦¸¦ °í·ÁÇÒ¼ö ÀÖ´Ù. ÀÎÀÚ´Â ÁÖ¼ÒÀ̾î¾ß Çϸç, ¿©·¯ºÐÀº 16Áø¼ö·Î ÁöÁ¤Çϱâ À§ÇØ ¾Õ¿¡ `0x'¸¦ µÎ±æ ¿øÇÒ °ÍÀÌ´Ù.
show rstack_high_address
AMD 29000 Æйи® ÇÁ·Î¼¼¼­¿¡¼­, ·¹Áö½ºÅÍ ½ºÅà ÇÁ·¹ÀÓÀÇ ÇöÀç Á¦ÇÑ°ªÀ» Ãâ·ÂÇÑ´Ù.

ºÎµ¿ ¼Ò¼öÁ¡ Çϵå¿þ¾î

¼³Á¤¿¡ ÀÇÁ¸ÇÏ¿©, GDB´Â ºÎµ¿ ¼Ò¼öÁ¡ Çϵå¿þ¾îÀÇ »óÅ¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ÁØ´Ù.

info float
ºÎµ¿ ¼Ò¼öÁ¡ À¯´Ö¿¡ °üÇÑ Çϵå¿þ¾î ÀÇÁ¸ Á¤º¸¸¦ º¸¿©ÁØ´Ù. Á¤È®ÇÑ ³»¿ë°ú ·¹À̾ƿôÀº ºÎµ¿ ¼Ò¼öÁ¡ Ĩ¿¡ ÀÇÁ¸ÇÏ¿© ´Þ¶óÁø´Ù. ÇöÀç, `info float'´Â ARM°ú x86 ¸Ó½ÅÀ» Áö¿øÇÑ´Ù.

´Ù¸¥ ¾ð¾î¿¡¼­ GDB »ç¿ëÇϱâ

ÇÁ·Î±×·¥ ¾ð¾îµéÀº ÀϹÝÀûÀ¸·Î °øÅëÀûÀÎ ¸éÀ» ¸¹ÀÌ °¡Áö°í ÀÖÁö¸¸, ÀÌµé ¾ð¾îµéÀº °ÅÀÇ °°Àº ¹æ½ÄÀ¸·Î Ç¥ÇöµÇÁö ¾Ê´Â´Ù. ¿¹¸¦ µé¾î, ANSI C¿¡¼­ Æ÷ÀÎÅÍ pÀÇ ¿ªÂüÁ¶´Â *pÀÌÁö¸¸, Modula-2¿¡¼­´Â p^ÀÌ´Ù. °ªµéµµ º¸Åë ´Ù¸£°Ô Ç¥ÇöµÈ´Ù. C¿¡¼­ 16Áø¼ö °ªÀº `0x1ae'ó·³ ³ªÅ¸³ªÁö¸¸ Modula-2¿¡¼­´Â `1AEH'ó·³ ³ªÅ¸³­´Ù.

¾ð¾î ÀÇÁ¸ÀûÀÎ Á¤º¸´Â ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥ÀÇ ¿ø ¾ð¾î¿¡¼­ÀÇ ÀÛµ¿À» Ç¥ÇöÇϵµ·Ï Çϱâ À§ÇØ ±×¸®°í ÇÁ·Î±×·¥ÀÇ ¿ø ¾ð¾îÀÇ ¹®¹ý°ú ÀÏ°üµÇ°Ô Ãâ·Â °ªÀ» GDB¿¡°Ô Çã¿ëÇϱâ À§ÇØ GDB³»¿¡ ³»ÀåµÇ¾î ÀÖ´Ù. ¿©·¯ºÐÀÌ »ç¿ëÇÏ´Â ¾ð¾î´Â working language ¶ó°í ºÎ¸¥´Ù.

¼Ò½º ¾ð¾î º¯°æ.

working language¸¦ Á¦¾îÇϱâ À§Çؼ­´Â 2°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù.--GDB°¡ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤ ÇϵçÁö ¿©·¯ºÐ ½º½º·Î ¼±ÅÃÇϵçÁöÀÇ ¹æ¹ý. ¿©·¯ºÐÀº set language ¸í·É¾î¸¦ »ç¿ëÇÏ¿© ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ½ÃÀÛ½Ã, GDB´Â ÀÚµ¿ÀûÀ¸·Î ¾ð¾î¸¦ ¼³Á¤ÇÑ´Ù. working language´Â ¿©·¯ºÐÀÇ Ç¥Çö½ÄÀÌ Çؼ®µÇ´Â ¹æ¹ý, °ªµéÀÌ Ãâ·ÂµÇ´Â ¹æ¹ýµîÀ» °áÁ¤Çϱâ À§ÇØ »ç¿ë µÈ´Ù.

working language ÀÌ¿Ü¿¡, GDB°¡ ¾Ë°í ÀÖ´Â ¸ðµç ¼Ò½º ÆÄÀÏÀº ÀÚ½ÅÀÇ working language¸¦ °¡Áö°í ÀÖ´Ù. ¸î¸î °´Ã¼ ÆÄÀÏ Æ÷¸Ë¿¡¼­, ÄÄÆÄÀÏ·¯´Â ƯÁ¤ ¼Ò½º ÆÄÀÏ ¾ð¾î°¡ ¾î´À°ÍÀÎÁö ¸¦ °¡¸®Å²´Ù. ±×·¯³ª, GDB´Â ´ëºÎºÐ ÆÄÀÏÀÇ À̸§¿¡¼­ ¾ð¾î¸¦ À¯ÃßÇÑ´Ù. ¼Ò½º ÆÄÀÏÀÇ ¾ð¾î´Â C++À̸§ÀÌ demangleÇÏ´Â °Íó·³ Á¦¾îÇÑ´Ù. -- backtrace ¹æ¹ýÀº ÀÚ½ÅÀÇ ¾ð¾î¸¦ À§ÇØ ÀûÀýÈ÷ °¢ ÇÁ·¹ÀÓÀ» º¸¿©ÁØ´Ù. GDB³»¿¡¼­ ¼Ò½º ÆÄÀÏÀÇ ¾ð¾î¸¦ ¼³Á¤Çϱâ À§ÇÑ ¹æ¹ýÀº ¾ø´Ù.

ÀÌ°ÍÀº ¿©·¯ºÐÀÌ C·Î ¸¸µé¾úÁö¸¸ ´Ù¸¥ ¾ð¾î·Î ¾²¿©Áø cfront³ª f2c°°Àº ÇÁ·Î±×·¥À» »ç¿ëÇÒ¶§ °¡Àå ÀϹÝÀûÀÎ ¹®Á¦ÀÌ´Ù. ±× °æ¿ì, C Ãâ·Â½Ã #line Áö½Ã¾î¸¦ »ç¿ëÇϵµ·Ï ÇÁ·Î±×·¥À» ¸¸µé¾î¶ó.; GDB´Â ¿ø ÇÁ·Î±×·¥ÀÇ ¼Ò½º ÄÚµåÀÇ ÀûÀýÇÑ ¾ð¾î¸¦ ¾Ë°ÍÀÌ´Ù. ±×¸®°í ¼Ò½º Äڵ带 º¸¿©ÁÖ¸ç CÄÚµå´Â ¸¸µéÁö ¾ÊÀ» °ÍÀÌ´Ù.

ÆÄÀÏ À̸§ È®Àå ¸®½ºÆ®°ú ¾ð¾îµé

¼Ò½º ÆÄÀÏ À̸§ÀÌ ´ÙÀ½ È®ÀåµéÁß Çϳª¶ó¸é, GDB´Â ±× ¾ð¾î°¡ ´ÙÀ½Áß Çϳª¸¦ °¡¸®Å²´Ù°í »ý°¢ÇÑ´Ù.

`.mod'
Modula-2 ¼Ò½º ÆÄÀÏ
`.c'
C source file
`.C'
`.cc'
`.cxx'
`.cpp'
`.cp'
`.c++'
C++ ¼Ò½º ÆÄÀÏ
`.ch'
`.c186'
`.c286'
CHILL ¼Ò½º ÆÄÀÏ
`.s'
`.S'
¾î¼Àºí¸®¾î ¼Ò½º ÆÄÀÏ. ÀÌ°ÍÀº °ÅÀÇ Có·³ ÇൿÇÏÁö¸¸, GDB´Â steppingÇÒ¶§ ÇÔ¼ö prologue¸¦ Áö³ªÄ¡Áö ¾Ê´Â´Ù.

working language ¼³Á¤Çϱâ

¿©·¯ºÐÀÌ ÀÚµ¿ÀûÀ¸·Î ¾ð¾î¸¦ ¼³Á¤Çϵµ·Ï GDB¸¦ Çã¿ëÇÑ´Ù¸é, Ç¥Çö½ÄÀº µð¹ö±ë ¼¼¼Ç ¹× ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥¿¡¼­ °°Àº ¹æ¹ýÀ¸·Î Çؼ®µÈ´Ù.

¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é, ¿©·¯ºÐÀº ¾ð¾î¸¦ ¼³Á¤ÇÒ¼ö ÀÖ´Ù. ÀÌ°ÍÀ» Çϱâ À§ÇØ, ¸í·É¾î `set language lang'¸¦ »ç¿ëÇضó. ¿©±â¼­ lang´Â c³ª modula-2°°Àº ¾ð¾î À̸§ÀÌ´Ù. Áö¿ø ¾ð¾îÀÇ ¸®½ºÆ®¸¦ º¸°í ½ÍÀ¸¸é, `set language'¸¦ ŸÀÌÇÎÇضó.

¾ð¾î ¼³Á¤Àº GDB°¡ ÀÚµ¿ÀûÀ¸·Î working language °»½ÅÇϴ°ÍÀ» ¸·¾ÆÁØ´Ù. ¸¸ÀÏ ¿©·¯ºÐÀÌ working language°¡ ¼Ò½º ¾ð¾î¿Í °°Áö ¾ÊÀ»¶§³ª Ç¥Çö½ÄÀÌ µÎ ¾ð¾î¸¦ ¸ðµÎ ¼ö¿ëÇÒ¶§--±×·¯³ª Àǹ̴ ´Ù¸¦¶§-- ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ °æ¿ì ÀÌ°ÍÀº È¥¶õÀ» ¾ß±âÇÑ´Ù. ¿¹¸¦ µé¾î, ÇöÀç ¼Ò½º ÆÄÀÏÀÌ C·Î ¾²¿©Á³°í, GDB´Â Modula-2¸¦ ÆĽÌÇÑ´Ù¸é:

print a = b + c

À§ ¸í·É¾î´Â ¿©·¯ºÐÀÌ ÀǵµÇÑ ´ë·Î µÇÁö ¾Ê´Â´Ù. C¿¡¼­, ÀÌ°ÍÀº b¿Í c¸¦ ´õÇÏ°í °á°ú¸¦ a¿¡ ³õ´Â´Ù. Ãâ·Â °á°ú´Â a °ªÀ̵ȴÙ. Modula-2¿¡¼­, ÀÌ°ÍÀº a¿Í b+cÀÇ °á°ú¸¦ ºñ±³ÇÑ´Ù. ±×¸®°í BOOLEAN°á°ú¸¦ °¡Áø´Ù.

GDB·Î ¼Ò½º ¾ð¾î ÃßÁ¤Çϱâ

working language¸¦ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤Çϵµ·Ï GDB¸¦ °¡Áú·Á¸é, `set language local'³ª `set language auto'¸¦ »ç¿ëÇضó. ±×·¯¸é GDB´Â working language¸¦ ÃßÁ¤ÇÑ´Ù. Áï, ¿©·¯ºÐÀÇ ÇÁ·Î±×·¡¹Ö ÇÁ·¹ÀÓ¿¡¼­ ¸ØÃ⶧(º¸Åë breakpoint¸¦ ¸¸³¯¶§), GDB´Â working language¸¦ ÇÁ·¹ÀÓ³» ÇÔ¼ö¸¦ À§ÇØ ±â·ÏµÈ ¾ð¾î·Î ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ÇÁ·¹ÀÓ¿¡¼­ÀÇ ¾ð¾î¸¦ ¾ËÁö ¸øÇÑ´Ù¸é(Áï, ÇÔ¼ö³ª ÇÁ·¹ÀÓ¿¡ ÇØ´çÇÏ´Â ºí·°ÀÌ ÀνĵǴ ȮÀåÀÌ ¾Æ´Ñ ¼Ò½º ÆÄÀϾȿ¡ Á¤ÀǵǾî ÀÖ´Ù¸é), ÇöÀç working language´Â ¹Ù²îÁö ¾Ê´Â´Ù. ±×¸®°í GDB´Â °æ°í¸¦ º¸¿©ÁØ´Ù.

ÀÌ°ÍÀº ÇϳªÀÇ ¼Ò½º ÆÄÀÏ Àüü¿¡ ¾²¿©Áø ´ëºÎºÐÀÇ ÇÁ·Î±×·¥¿¡¼­´Â ÇÊ¿äÇÏÁö ¾Ê´Ù. ±×·¯³ª, ÇϳªÀÇ ¼Ò½º ¾ð¾î·Î ¾²¿©Áø ÇÁ·Î±×·¥ ¸ðµâÈ­¿Í ¶óÀ̺귯¸®´Â ´Ù¸¥ ¼Ò½º ¾ð¾î·Î ¾²¿©Áø ÁÖ ÇÁ·Î±×·¥¿¡ ÀÇÇØ »ç¿ëµÉ¼ö ÀÖ´Ù. ÀÌ·± °æ¿ì `set language auto'À» »ç¿ëÇϸé working language¸¦ ¼³Á¤Çϴµ¥ ¿©·¯ºÐÀ» ÀÚÀ¯½º·´°Ô ÇØÁØ´Ù.

¾ð¾î º¸¿©ÁÖ±â

´ÙÀ½ ¸í·É¾îµéÀº ¿©·¯ºÐÀÌ working language°¡ ¹«¾ùÀÎÁö¸¦ ¹ß°ßÇϴµ¥ µµ¿ÍÁØ´Ù. ±×¸®°í ¶ÇÇÑ ¾ð¾î ¼Ò½º ÆÄÀϵéÀÌ ¹«½¼ ¾ð¾î·Î ¾²¿©Á³´ÂÁöµµ ¹ß°ßÇϴµ¥ µµ¿ÍÁØ´Ù.

show language
ÇöÀç working language¸¦ º¸¿©ÁØ´Ù. ÀÌ°ÍÀº ¾ð¾î¿¡¼­ ¿©·¯ºÐÀÌ ÇÁ·Î±×·¥ÀÇ º¯¼ö Ç¥Çö½ÄÀ» °è»êÇϱâ À§ÇØ print¿Í °°Àº ¸í·É¾î¸¦ »ç¿ëÇÏ´Â °Í°ú °°´Ù.
info frame
ÇÁ·¹ÀÓ³» ¼Ò½º ¾ð¾î¸¦ º¸¿©ÁØ´Ù. ÀÌ ¾ð¾î´Â ¸¸ÀÏ ¿©·¯ºÐÀÌ ÇÁ·¹ÀÓ¿¡¼­ ½Äº°ÀÚ¸¦ »ç¿ë ÇÑ´Ù¸é working language°¡ µÈ´Ù. ¿©±â¿¡ ³ª¿­µÈ ´Ù¸¥ Á¤º¸¸¦ ¿øÇÑ´Ù¸é, ÇÁ·¹ÀÓ Á¤º¸ ¼½¼ÇÀ» ÂüÁ¶Çضó.
info source
¼Ò½º ÆÄÀÏÀÇ ¼Ò½º ¾ð¾î¸¦ º¸¿©ÁØ´Ù. ¿©±â¿¡ ³ª¿­µÈ ´Ù¸¥ Á¤º¸¸¦ ¿øÇÑ´Ù¸é, ½Éº¼ Å×ÀÌºí °Ë»çÇϱ⠼½¼ÇÀ» ÂüÁ¶Çضó.

ŸÀÔ°ú ¹üÀ§ °Ë»ç

°æ°í: À̹ø ¸±¸®Áî¿¡¼­, ŸÀÔ°ú ¹üÀ§ °Ë»ç¸¦ À§ÇÑ GDB ¸í·É¾îµéÀÌ Ãß°¡µÇ¾ú´Ù ±×·¯³ª ¾ÆÁ÷ ¾î¶² ¿µÇâÀ» °¡ÁöÁö´Â ¾Ê´Â´Ù. ÀÌ ¼½¼ÇÀº ÁöÁ¤µÈ ±â´ÉµéÀ» ¹®¼­È­ Çß´Ù.

¸î¸î ¾ð¾îµéÀº ÄÄÆÄÀÏ-½ÇÇà½Ã°£ °Ë»ç¸¦ ÅëÇØ ÀϹÝÀû ¿¡·¯¸¦ ¸¸µéÁö ¾Êµµ·Ï Çϱâ À§ÇØ °í¾ÈµÇ¾ú´Ù. À̰͵éÀº ÇÔ¼ö¿Í ¿¬»êÀÚ¿¡ ´ëÇÑ ÀÎÀÚ Å¸ÀÔ °Ë»ç¸¦ Æ÷ÇÔÇϸç È®½ÇÇÑ ¼öÇÐÀû ¾î¹öÇÃ·Î¾î °Ë»ç´Â ·±Å¸Àӽà ÇàÇØÁø´Ù. ÀÌ¿Í °°Àº °Ë»çµéÀº ÀÏ´Ü ÇÁ·Î±×·¥ÀÌ ¿Ã¹Ù¸£°Ô µ¹¾Æ°¡´Â°É µµ¿ÍÁÖ¸ç ŸÀÔ ºÒÀÏÄ¡µîÀ» Á¦°ÅÇϸç ÄÄÆÄÀÏ µÇ°í ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ¶§ ¹üÀ§ ¿¡·¯µéÀ» °Ë»çÇÑ´Ù.

GDB´Â ¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é À§¿Í °°Àº Á¶°ÇµéÀ» °Ë»çÇÑ´Ù. ºñ·Ï GDB°¡ ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥³» ¹®ÀåµéÀ» °Ë»çÇÏÁö ¾ÊÀ½¿¡µµ ºÒ±¸ÇÏ°í, print ¸í·É¾î¸¦ ÅëÇÑ Æò°¡¸¦ À§ÇØ GDB·Î Á÷Á¢ µé¾î°¡ Ç¥Çö½ÄÀ» °Ë»çÇÒ¼ö ÀÖ´Ù. working languageó·³, GDB´Â ¶ÇÇÑ ÇÁ·Î±×·¥ ¼Ò½º ¾ð¾î ±â¹ÝÀ¸·Î °Ë»çÇÒÁö ¾ÈÇÒÁö¸¦ °áÁ¤ÇÒ¼ö ÀÖ´Ù. Áö¿øµÇ´Â ¾ð¾îÀÇ ±âº» ¼³Á¤À» º¸±â ¿öÇÑ´Ù¸é, Áö¿øµÇ´Â ¾ð¾îµé¼½¼ÇÀ» ÂüÁ¶Çضó.

ŸÀÔ °Ë»ç¿¡ ´ëÇÑ °³°ü

Modula-2°°Àº ¸î¸î ¾ð¾îµéÀº ¿¬»êÀÚ¿Í ÇÔ¼öµé¿¡ ´ëÇÑ ÀÎÀÚµéÀÌ ¿Ã¹Ù¸¥ ŸÀÔÀÎÁö¸¦ °­ÇÏ°Ô °Ë»çÇÏ¸ç ±×·¸Áö ¾ÊÀ» °æ¿ì¿¡´Â ¿¡·¯¸¦ ¹ß»ýÇÑ´Ù. ÀÌµé °Ë»çµéÀ» ŸÀÔÀÌ ´Þ¶ó ½ÇÇà½Ã°£ ¹®Á¦¸¦ ¾ß±âÇÏ´Â ¿¡·¯µéÀ» ¸·´Â´Ù. ¿¹¸¦ µé¾î,

1 + 2 => 3
but
error--> 1 + 2.3

µÎ¹ø° ¿¹´Â ½ÇÆÐÇÑ´Ù. ¿Ö³ÄÇϸé CARDINAL 1Àº REAL 2.3°ú ŸÀÔÀÌ È£È¯µÇÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

¿©·¯ºÐÀÌ GDB ¸í·É¾î¿¡¼­ »ç¿ëÇÒ Ç¥Çö½ÄÀ» À§ÇØ, ¿©·¯ºÐÀº °Ë»ç¸¦ ±×³É ³Ñ¾î°¡µµ·Ï GDB ŸÀÔ °Ë»çÀÚ¿¡°Ô ¸»ÇÒ¼ö ÀÖ´Ù; ¿¡·¯°°Àº ¾î¶² ºÒÀÏÄ¡¸¦ ó¸®ÇÏ°í Ç¥Çö½ÄÀ» ¹ö¸®±â À§ÇØ; ¶Ç´Â ºÒÀÏÄ¡µÈ ŸÀÔÀÌ ÀϾ¶§ Ç¥Çö½ÄÀº Æò°¡ÇÏ°í °æ°í¸¦ ¾Ë·ÁÁÖ±â À§ÇØ. ¿©·¯ºÐÀÌ À̰͵éÁß ¸¶Áö¸·À» ¼±ÅÃÇÒ¶§, GDB´Â À§ÀÇ µÎ¹ø° ¿¹Ã³·³ Ç¥Çö½ÄÀ» Æò°¡Çϸç, °æ°íµµ ¾Ë·ÁÁØ´Ù.

ºñ·Ï ¿©·¯ºÐÀÌ Å¸ÀÓ °Ë»ç¸¦ ²°´Ù ÇÒÁö¶óµµ, °Å±â¿¡´Â GDB°¡ Ç¥Çö½Ä Æò°¡¸¦ ¸·µµ·ÏÇÏ´Â µ¥¿¡´Â ŸÀÔ°ú °ü·ÃµÈ ¸î°¡Áö ´Ù¸¥ ÀÌÀ¯°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î, GDB´Â int¿Í struct foo¸¦ Ãß°¡ÇÏ´Â ¹æ¹ýÀ» ¾ËÁö ¸øÇÑ´Ù. ÀÌ·¯ÇÑ Æ¯º°ÇÑ Å¸ÀÔ ¿¡·¯µéÀº »ç¿ëÇÏ´Â ¾ð¾îµé°ú´Â °ü°è°¡ ¾ø´Ù. ±×¸®°í À§¿¡ ¼³¸íÇÑ °Íµéó·³ Ç¥Çö½Ä¿¡¼­ ÀϾ´Ù.

°¢ ¾ð¾îµéÀº ŸÀÔ¿¡ °üÇØ ¾ö°ÝÇÑ Á¤µµ¸¦ Á¤ÀÇÇÑ´Ù. ¿¹¸¦ µé¾î, Modula-2¿Í C´Â »ê¼úÀû ¿¬»êÀÚ¸¦ À§ÇØ ÀÎÀÚ¸¦ ¿ä±¸ÇÑ´Ù. C¿¡¼­, ¿­°ÅµÈ ŸÀÔ°ú Æ÷ÀÎÅ͵éÀº ¼ö·Î½á ´Ù½Ã Ç¥ÇöµÇ°í, ±×·¡¼­ À̰͵éÀº ¼öÄ¡Àû ¿¬»êÀÚ¸¦ À§ÇØ À¯È¿ÇÑ ÀÎÀÚÀÌ´Ù. ƯÁ¤ ¾ð¾î¿¡ ´ëÇÑ ¼¼ºÎÀû »çÇ×À» À§Çؼ­´Â Áö¿øµÇ´Â ¾ð¾îµé ¼½¼ÇÀ» ÂüÁ¶Çضó.

GDB´Â ŸÀÔ °Ë»çÀÚ¸¦ Á¦¾îÇϱâ À§ÇØ Ãß°¡ÀûÀÎ ¸í·É¾î¸¦ Á¦°øÇÑ´Ù:

set check type auto
ÇöÀç working language¿¡ ±â¹ÝÇÏ¿© ŸÀÔ °Ë»ç¸¦ ÇÒÁö¸¦ ¾ÈÇÒÁö¸¦ ¼³Á¤ÇÑ´Ù. °¢ ¾ð¾î¿¡ ´ëÇÑ ±âº» ¼³Á¤À» À§Çؼ­´Â Áö¿øµÇ´Â ¾ð¾îµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
set check type on
set check type off
ÇöÀç working language ±âº» ¼³Á¤°ªÀ» µ¤¾î ¾²µµ·Ï ŸÀÔ °Ë»ç¸¦ on ¶Ç´Â off·Î ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ¼³Á¤ÀÌ ±âº» ¾ð¾î¿Í ¸ÂÁö ¾Ê´Ù¸é °æ°í¸¦ º¸¿© ÁØ´Ù. ¸¸ÀÏ ¾î¶² ŸÀÔ ºÒÀÏÄ¡°¡ ŸÀÔ °Ë»ç°¡ onÀÎ µ¿¾È¿¡ Ç¥Çö½Ä Æò°¡Áß¿¡ ÀϾ´Ù¸é, GDB´Â ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ°í Ç¥Çö½Ä Æò°¡¿¡¼­ ÁߴܵȴÙ.
set check type warn
°æ°í¸¦ º¸¿©ÁÖ±â À§ÇØ Å¸ÀÔ °Ë»çÀÚ¸¦ ¼³Á¤ÇÏ°í Ç×»ó Ç¥Çö½Ä Æò°¡¸¦ À§ÇØ ½ÃµµµÈ´Ù. Ç¥Çö½Ä Æò°¡´Â ¿©ÀüÈ÷ ´Ù¸¥ ÀÌÀ¯¿¡¼­ ºÒ°¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î, GDB´Â ¸â¹öµé°ú ±¸Á¶Ã¼µéÀ» Ãß°¡ÇÒ¼ö ¾ø´Ù.
show type
ŸÀÔ °Ë»çÀÚÀÇ ÇöÀç ¼³Á¤À» º¸¿©ÁÖ¸ç, GDB°¡ ÀÚµ¿À¸·Î ¼³Á¤ÇÏ¿´´ÂÁö ¾ÈÇß´ÂÁö¸¦ º¸¿©ÁØ´Ù.

¹üÀ§ °Ë»ç¿¡ ´ëÇÑ °³°ü

¸î¸î ¾ð¾î(Modula-2¿Í °°Àº)´Â, ŸÀÔÀÇ ¹üÀ§¸¦ ÃÊ°úÇÏ¸é ¿¡·¯ÀÌ´Ù; ÀÌ°ÍÀº ½ÇÇà½Ã°£ °Ë»ç¿¡¼­ °­¿äµÈ´Ù. ±×·± ¹üÀ§ °Ë»ç´Â °è»êÀÌ ¿À¹öÇ÷ξîÇÏÁö ¾Ê°í, ¹è¿­ÀÇ ¹üÀ§¸¦ ³Ñ¾î¼± ¹è¿­ ¿ä¼Ò¸¦ Á¢±ÙÇÏÁö ¸øÇϵµ·Ï ÇÁ·Î±×·¥À» Á¤È®ÇÏ°Ô ÇØÁØ´Ù.

¿©·¯ºÐÀÌ GDB ¸í··¾î¿¡¼­ »ç¿ëÇϴ ǥÇö½Ä¿¡¼­, ¿©·¯ºÐÀº GDB°¡ ¼¼°¡Áö Áß Çϳª·Î ¹üÀ§ ¿¡·¯¸¦ ´ëÇϵµ·Ï ÇÒ¼ö ÀÖ´Ù: ¹«½ÃÇϰųª, Ç×»ó ¿¡·¯·Î½á ´ëÇÏ°í Ç¥Çö½Ä¿¡¼­ ÁßÁöÇϰųª °æ°í¸¦ º¸¿©ÁÖ°í Ç¥Çö½ÄÀ» Æò°¡Çϵµ·Ï.

¹üÀ§ ¿¡·¯´Â ¼öÄ¡Àû ¿À¹öÇ÷ξ ¹è¿­ ÀÎÅؽº °æ°è¸¦ ³Ñ¾î¼³ °æ¿ì, ¿©·¯ºÐÀÌ ¾î¶² ŸÀÔÀÇ ¸â¹ö°¡ ¾Æ´Ñ »ó¼ö¸¦ ŸÀÔÇÒ¶§ ³ª¿Â´Ù. ±×·¯³ª, ¸î¸î ¾ð¾îµéÀº ¿¡·¯·Î½á ¿À¹öÇ÷ξ ´Ù·çÁö ¾Ê´Â´Ù. C¿¡¼­, ¼öÄ¡Àû ¿À¹ö Ç÷ξî´Â "wrap around" °á°ú¸¦ ¾ß±âÇÑ´Ù.--¿¹¸¦ µé¾î, ¸¸ÀÏ m°¡ Á¤¼ö °ªº¸´Ù Å©°í, s´Â ÀÛ´Ù¸é, ±×·¯¸é

m + 1 => s

ÀÌ°ÍÀº ¶ÇÇÑ °¢°¢ÀÇ ¾ð¾î¿¡ ÀÇÁ¸ÇÏ¸ç ¸î¸î °æ¿ì´Â ÄÄÆÄÀÏ·¯³ª ¸Ó½Å¿¡ ÀÇÁ¸ÀûÀÌ´Ù. ƯÁ¤ ¾ð¾î¿¡ ´ëÇÑ ¼¼ºÎ»çÇ×À» º¸°íÀÚ Çϸé Áö¿øµÇ´Â ¾ð¾îµé¼½¼ÇÀ» ÂüÁ¶Çضó.

GDB´Â ¹üÀ§ °Ë»çÀÚ¸¦ Á¦¾îÇϱâ À§ÇØ Ãß°¡ÀûÀÎ ¸í·É¾î¸¦ Á¦°øÇÑ´Ù:

set check range auto
ÇöÀç working language¿¡ ±â¹ÝÇÏ¿¡ ¹üÀ§ °Ë»ç¸¦ onÀ̳ª off¸¦ ¼³Á¤ÇÑ´Ù. °¢ ¾ð¾î¿¡ ´ëÇÑ ±âº» ¼³Á¤À» À§Çؼ­´Â Áö¿øµÇ´Â ¾ð¾îµé ¼½¼ÇÀ» ÂüÁ¶Çضó.
set check range on
set check range off
ÇöÀç working language ±âº» ¼³Á¤°ªÀ» µ¤¾î ¾²µµ·Ï ¹üÀ§ °Ë»ç¸¦ on ¶Ç´Â off·Î ¼³Á¤ÇÑ´Ù. ¸¸ÀÏ ¼³Á¤ÀÌ ±âº» ¾ð¾î¿Í ¸ÂÁö ¾Ê´Ù¸é °æ°í¸¦ º¸¿©ÁØ´Ù. ¸¸ÀÏ ¾î¶² ŸÀÔ ºÒÀÏÄ¡°¡ ŸÀ԰˻簡 onÀÎ µ¿¾È¿¡ Ç¥Çö½Ä Æò°¡Áß¿¡ ÀϾ´Ù¸é, GDB´Â ¸Þ¼¼Áö¸¦ º¸¿©ÁÖ°í Ç¥Çö½Ä Æò°¡¿¡¼­ ÁߴܵȴÙ.
set check range warn
GDB ¹üÀ§ °Ë»çÀÚ°¡ ¹üÀ§ ¿¡·¯¸¦ ã¾ÒÀ»¶§ ¸Þ¼¼Áö¸¦ Ãâ·ÂÇÏ°í Ç¥Çö½ÄÀ» Æò°¡Çϱâ À§ÇØ ½ÃµµÇÑ´Ù. Ç¥Çö½Ä Æò°¡´Â ¿©ÀüÈ÷ ´Ù¸¥ ÀÌÀ¯¿¡¼­ ºÒ°¡´ÉÇÏ´Ù. ¿¹¸¦ µé¾î, ÇÁ·Î¼¼½º °¡ ¼ÒÀ¯ÇÏÁö ¾ÊÀº ¸Þ¸ð¸®¿¡ Á¢±ÙÇÏ´Â °æ¿ìÀÌ´Ù.(¸¹Àº À¯´Ð½º ½Ã½ºÅÛÀÇ ÀüÇüÀûÀÎ ¿¹)
show range
¹üÀ§ °Ë»çÀÚÀÇ ÇöÀç ¼³Á¤°ªÀ» º¸¿©ÁÖ¸ç, GDB°¡ ÀÚµ¿ÀûÀ¸·Î ¼³Á¤ÇÏ¿´´ÂÁö ¾ÈÇß´ÂÁö¸¦ º¸¿©ÁØ´Ù.

Áö¿øµÇ´Â ¾ð¾îµé

GDB 4´Â C, C++ ±×¸®°í Modula-2¸¦ Áö¿øÇÑ´Ù. ¸î¸î GDB Ư¡µéÀº »ç¿ëÇÏ´Â ¾ð¾î¿¡ °ü°è¾øÀÌ Ç¥Çö½Ä¿¡¼­ »ç¿ëµÉ¼ö ÀÖ´Ù.: GDB @°ú :: ¿¬»êÀÚ, ±×¸®°í `{type}addr' »ý¼ºÀÚ´Â(Ç¥Çö½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó.) Áö¿øµÇ´Â ¾ð¾îÀÇ »ý¼ºÀÚ¿Í ÇÔ²² »ç¿ëµÉ¼ö ÀÖ´Ù.

´ÙÀ½ ¼½¼ÇµéÀº GDB°¡ Áö¿øÇÏ´Â °¢ ¼Ò½º ¾ð¾îµé¿¡ ´ëÇÑ »ó¼¼ÇÑ ³»¿ëÀÌ´Ù. ÀÌµé ¼½¼ÇÀº ¾ð¾î ¸Å´º¾óÀº ¾Æ´ÏÁö¸¸, GDB Ç¥Çö½Ä Æļ­°¡ ¼ö¿ëÇÏ´Â °ÍÀ» ¾Ë·ÁÁÖ´Â ·¹ÆÛ·±½º °°Àº °ÍÀÌ´Ù. ±×¸®°í ÀÔÃâ·Â Æ÷¸ËÀº ´Ù¸¥ ¾ð¾îµé ó·³ º¸¿©¾ß ÇÑ´Ù. °¢ ¾ð¾î¸¦ À§ÇØ ¾²¿©Áø ÁÁÀº Ã¥µéÀÌ ¸¹ÀÌ ÀÖ´Ù; ¾ð¾î ¸Å´º¾óÀ» À§Çؼ­ À̰͵éÀ» ÂüÁ¶Çضó.

C ±×¸®°í C++

C¿Í C++Àº ¸Å¿ì °ü°è°¡ ¸¹±â ¶§¹®¿¡, GDBÀÇ ¸¹Àº Ư¡µéÀÌ µÎ ¾ð¾î¿¡ Àû¿ëµÈ´Ù. ÇØ´ç °æ¿ì¿¡, ¿ì¸®´Â µÎ ¾ð¾î¸¦ ÇÔ²² ³íÀÇÇÒ °ÍÀÌ´Ù.

C++ µð¹ö±ë ±â´ÉÀº GNU C++ ÄÄÆÄÀÏ·¯¿Í GDB¿¡ ÀÇÇØ ¼öÇàµÈ´Ù. ±×·¯¹Ç·Î, È¿°úÀûÀ¸·Î C++Äڵ带 µð¹ö±ëÇϱâ À§ÇØ, ¿©·¯ºÐÀº GNU C++ ÄÄÆÄÀÏ·¯ g++·Î C++ÇÁ·Î±×·¥À» ÄÄÆÄÀÏ ÇØ¾ß ÇÑ´Ù.

C++ ÇÁ·Î±×·¥À» µð¹ö±ëÇÒ¶§, stab µð¹ö±ë Æ÷¸ËÀ» »ç¿ëÇضó. ¿©·¯ºÐÀº g++ ¸í·É¾î ¿É¼Ç `-gstabs'³ª `-gstabs+'¸¦ »ç¿ëÇÏ¿© Æ÷¸ËÀ» ¼±ÅÃÇÒ¼ö ÀÖ´Ù. ´õ ¸¹Àº Á¤º¸¸¦ À§ÇØ Using GNU CCÀÇ `Options for Debugging Your Program or GNU CC' ¼½¼ÇÀ» ÂüÁ¶Çضó.

C ±×¸®°í C++ ¿¬»êÀÚ

¿¬»êÀÚµéÀº ƯÁ¤ ŸÀÔÀÇ °ªÀ¸·Î Á¤ÀǵǾî¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, +´Â ±¸Á¶Ã¼°¡ ¾Æ´Ñ ¼ýÀÚ·Î Á¤ÀǵǾî ÀÖ´Ù. ¿¬»êÀÚµéÀº ±×·ìÀÇ Å¸ÀÔÀ¸·Î ÀÚÁÖ Á¤ÀǵǾî ÀÖ´Ù.

C¿Í C++À» À§ÇØ, ´ÙÀ½ Á¤ÀǵéÀÌ ÀÖ´Ù:

´ÙÀ½ ¿¬»êÀڵ鵵 Áö¿øµÈ´Ù. ¿ì¼±±ÇÀÌ ³ôÀº¼øÀ¸·Î ¸®½ºÆ®µÇ¾î ÀÖ´Ù.

,
Äĸ¶³ª ¼øÂ÷ ¿¬»êÀÚ. Äĸ¶·Î ºÐ¸®µÇ¾î ³ª¿­µÈ Ç¥Çö½ÄÀº ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊÀ¸·Î Æò°¡µÈ´Ù.
=
´ëÀÔ. ´ëÀÔ Ç¥Çö½Ä °ªÀº ´ëÀÔµÈ °ªÀÌ´Ù. ½ºÄ®¶ó ŸÀÔÀ¸·Î Á¤ÀǵǾî ÀÖ´Ù.
op=
a op= b ÇüÅÂÀÇ Ç¥Çö½ÄÀ¸·Î »ç¿ëµÇ¸ç, a = a op b °ú °°ÀÌ Çؼ®µÈ´Ù. op= ¿Í = ´Â ¿ì¼±±ÇÀÌ °°´Ù. op´Â |, ^, &, <<, >>, +, -, *, /, % Áß ÇϳªÀÌ´Ù.
?:
3Ç× ¿¬»êÀÚ. a ? b : c´Â ´ÙÀ½°ú °°´Ù: ¸¸ÀÏ a¶ó¸é bÀÌ°í, ±×·¸Áö ¾ÊÀ¸¸é cÀÌ´Ù. a´Â Á¤¼öÇüÀ̾î¾ß ÇÑ´Ù.
||
³í¸®Àû OR. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
&&
³í¸®Àû AND. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
|
Bitwise OR. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
^
Bitwise exclusive-OR. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
&
Bitwise AND. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
==, !=
µî°¡¿Í ºñµî°¡. ½ºÄ®¶óÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ÀÌ Ç¥Çö½ÄÀÇ °ªÀº 0ÀÌ¸é °ÅÁþÀÌ°í 0ÀÌ ¾Æ´Ï¸é ÂüÀÌ´Ù.
<, >, <=, >=
À۰ųª, Å©°Å³ª, À۰ųª °°°í, Å©°Å³ª °°´Ù. ½ºÄ®¶ó Çü¿¡¼­¸¸ Á¤ÀǵȴÙ. ÀÌ Ç¥Çö½ÄÀÇ °ªÀº 0ÀÌ¸é °ÅÁþÀÌ°í 0ÀÌ ¾Æ´Ï¸é ÂüÀÌ´Ù.
<<, >>
¿ÞÂÊÀ¸·Î ½¬ÇÁÆ® ±×¸®°í ¿À¸¥ÂÊÀ¸·Î ½¬ÇÁÆ®. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
@
GDB "Àΰø ¹è¿­" ¿¬»êÀÚ(Ç¥Çö½Ä ¼½¼ÇÀ» ÂüÁ¶Çضó.).
+, -
´õÇϱ⠱׸®°í »©±â. Á¤¼öÇü, ºÎµ¿¼Ò¼öÇü, Æ÷ÀÎÅÍÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
*, /, %
°öÇϱâ, ³ª´©±â, ³ª¸ÓÁö¿¬»ê. °öÇϱâ¿Í ³ª´©±â´Â Á¤¼öÇü, ºÎµ¿¼Ò¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ³ª¸ÓÁö ¿¬»êÀº Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ.
++, --
Áõ°¡, °¨¼Ò. º¯¼ö¾Õ¿¡ ¾²À̸é, ¿¬»êÀº º¯¼ö°¡ Ç¥Çö½Ä´ë·Î »ç¿ëµÇ±â Àü¿¡ ¼öÇàµÈ´Ù; º¯¼ö µÚ¿¡ ¾²À̸é, ¿¬»êÀÌ µÇ±âÀü¿¡ º¯¼ö °ªÀÌ »ç¿ëµÈ´Ù.
*
Æ÷ÀÎÅÍ ¿ªÂüÁ¶. Æ÷ÀÎÅÍÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ++°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
&
ÁÖ¼Ò ¿¬»êÀÚ. º¯¼ö¿¡¼­ Á¤ÀǵȴÙ. ++°ú ¿¬»ê¼øÀ§°¡ °°´Ù. C++À» µð¹ö±ëÇÒ¶§, GDB´Â C++ ¾ð¾îÀÚü¿¡¼­ Çã¿ëÇÏ´Â ¹üÀ§ÀÌ»óÀ¸·Î `&'À» »ç¿ëÇÒ¼ö ÀÖ´Ù.: ¿©·¯ºÐÀº C++ ÂüÁ¶ º¯¼ö(`&ref'·Î ¼±¾ðµÈ)°¡ ÀúÀåµÇ¾î ÀÖ´Â ÁÖ¼Ò¸¦ °Ë»çÇϱâ À§ÇØ `&(&ref)`À» »ç¿ëÇÒ¼ö ÀÖ´Ù.(¶Ç´Â, ¿©·¯ºÐÀÌ ¿øÇÑ´Ù¸é, °£´ÜÈ÷ `&&ref')
-
ºÎÁ¤. Á¤¼öÇüÀ̳ª ºÎµ¿ ¼Ò¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ++°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
!
³í¸®Àû ºÎÁ¤. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ++°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
~
Bitwise º¸¼ö ¿¬»êÀÚ. Á¤¼öÇü¿¡¼­¸¸ Á¤ÀǵȴÙ. ++°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
., ->
±¸Á¶Ã¼ ¸â¹ö, ±×¸®°í Æ÷ÀÎÅÍ°¡ °¡¸®Å°´Â ±¸Á¶Ã¼ ¸â¹ö. ÆíÀǸ¦ À§ÇØ, GDB´Â µÎ°³¸¦ °°Àº°ÍÀ¸·Î °£ÁÖÇϸç, ÀúÀåµÈ ŸÀÔÀÇ Á¤º¸¿¡ ±â¹ÝÇÏ¿© ¿ªÂüÁ¶ Æ÷ÀÎÅÍÀÎÁö ¾î¶²Áö¸¦ ¼±ÅÃÇÑ´Ù. struct°ú union µ¥ÀÌÅÍ¿¡¼­ Á¤ÀǵȴÙ.
[]
¹è¿­ À妽º. a[i]´Â *(a+i)ó·³ Á¤ÀǵȴÙ. ->°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
()
ÇÔ¼ö ÆĶó¹ÌÅÍ ¸®½ºÆ®. ->°ú ¿¬»ê¼øÀ§°¡ °°´Ù.
::
C++ ¹üÀ§ ¿¬»êÀÚ. struct, union, ±×¸®°í class ŸÀÔ¿¡¼­¸¸ Á¤ÀǵȴÙ.
::
´õºí ÄÝ·Ð ¶ÇÇÑ GDB ¹üÀ§ ¿¬»êÀڷΠǥ½ÃµÈ´Ù. (Expressions ¼½¼ÇÀ» ÂüÁ¶Çضó.). À§ÀÇ ::°ú ¿¬»ê¼øÀ§°¡ °°´Ù.

C , C++ »ó¼öµé

GDB´Â ¿©·¯ºÐÀÌ ´ÙÀ½°ú °°Àº ¹æ¹ýÀ¸·Î C¿Í C++»ó¼öµéÀ» ³ªÅ¸³¾¼ö ÀÖµµ·Ï Çã¿ëÇÑ´Ù.: