×ðÁú¿­Ê±¹ÙÍøµÇ¼

ÔõÑùʹÓÃgdbµ÷ÊÔ³ÌÐò

ͨ¹ý gdb µ÷ÊÔ³ÌÐòµÄ°ì·¨£º×°Öà gdb¡£Ê¹Óà gdb Æô¶¯µ÷ÊÔÆ÷²¢Ö¸¶¨³ÌÐò·¾¶¡£Ê¹Óà break ÉèÖöϵ㡣ʹÓà run ÔËÐгÌÐò¡£Ê¹Óà next¡¢step »ò finish ¾ÙÐзֲ½Ö´ÐС£Ê¹Óà print ¼ì²é±äÁ¿Öµ¡£Ê¹Óà bt ´òÓ¡Õ»¸ú×Ù¡£

ÔõÑùÔÚ GDB Öе÷ÊÔ³ÌÐò

1. ÌáÒª

GDB (GNU µ÷ÊÔÆ÷) ÊÇÒ»¿î¹¦Ð§Ç¿Ê¢µÄ¹¤¾ß£¬ÓÃÓÚµ÷ÊÔ Linux ³ÌÐò¡£ËüÔÊÐí¿ª·¢Ö°Ô±¼ì²é³ÌÐò״̬¡¢ÉèÖöϵãºÍÖð²½Ö´ÐдúÂë¡£

2. ×°ÖÃ GDB

ʹÓðü¹ÜÀíÆ÷ÔÚÄúµÄϵͳÉÏ×°Öà GDB¡£ÀýÈ磬ÔÚ Debian/Ubuntu ϵͳÉÏ£º

sudo apt-get install gdb

µÇ¼ºó¸´ÖÆ

3. µ÷ÊÔ³ÌÐò

Òªµ÷ÊÔ³ÌÐò£¬ÇëÆô¶¯ GDB ²¢Ö¸¶¨¿ÉÖ´ÐÐÎļþµÄ·¾¶£º

gdb ./my_program

µÇ¼ºó¸´ÖÆ

4. ÉèÖöϵã

¶ÏµãÔÊÐíÄúÔÝÍ£³ÌÐò²¢ÔÚÌض¨´úÂëÐд¦¾ÙÐмì²é¡£Ê¹ÓÃÏÂÁî break ÉèÖöϵ㣺

break 

µÇ¼ºó¸´ÖÆ

»òÕߣ¬Äú¿ÉÒÔʹÓà b ×÷Ϊ¼òд£º

b 

µÇ¼ºó¸´ÖÆ

5. ÔËÐгÌÐò

ʹÓÃÏÂÁî run Ö´ÐгÌÐò£º

run

µÇ¼ºó¸´ÖÆ

6. Öð²½Ö´ÐÐ

·Ö²½Ö´ÐÐÔÊÐíÄúÖðÐÐÖ´ÐдúÂ롣ʹÓÃÒÔÏÂÏÂÁ

  • next (n)£ºÖ´ÐÐÏÂÒ»ÐдúÂë
  • step (s)£ºÖ´ÐÐÏÂÒ»ÌõÖ¸Á¿ÉÄÜ°üÀ¨¿çÔ½¶à¸ö´úÂëÐУ©
  • finish (fin)£ºÖ´ÐÐÄ¿½ñº¯Êý²¢·µ»ØŲÓ÷½

7. ¼ì²é±äÁ¿Öµ

ʹÓà print ÏÂÁî¼ì²é±äÁ¿Öµ£º

print 

µÇ¼ºó¸´ÖÆ

8. Õ»¸ú×Ù

ʹÓÃÏÂÁî bt ´òÓ¡Ä¿½ñµÄÕ»¸ú×Ù£º

bt

µÇ¼ºó¸´ÖÆ

9. Í˳ö GDB

ʹÓÃÏÂÁî quit »ò q Í˳ö GDB£º

quit

µÇ¼ºó¸´ÖÆ

ÒÔÉϾÍÊÇÔõÑùʹÓÃgdbµ÷ÊÔ³ÌÐòµÄÏêϸÄÚÈÝ£¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí£¬°æȨÕùÒéÓë±¾Õ¾Î޹أ¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È£¬Çë¶ÁÕß½ö×ö²Î¿¼¡£±¾ÎĽӴýתÔØ£¬×ªÔØÇë˵Ã÷À´ÓÉ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢£¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢£¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

13452372176

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎ壬9:30-18:30£¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ