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

gdbµ÷ÊÔÔõôÓÃ

gdb ÊÇÓÃÓÚµ÷ÊÔ c/c++ ³ÌÐòµÄÇ¿Ê¢¹¤¾ß¡£Ê¹Óà gdb µÄ°ì·¨°üÀ¨£º±àÒë´øµ÷ÊÔÐÅÏ¢µÄ³ÌÐò¡£Æô¶¯ gdb¡£¼ÓÔسÌÐò¡£ÉèÖöϵã¡£ÔËÐгÌÐò¡£ÖðÐÐÖ´ÐС£Éó²éÄÚ´æºÍ¼Ä´æÆ÷¡£Ð޸ijÌÐòÖ´ÐÐÁ÷³Ì¡£

gdb µ÷ÊÔÈëÃÅ

gdb£¨GNU µ÷ÊÔÆ÷£©ÊÇÒ»¿îÇ¿Ê¢µÄ¹¤¾ß£¬¿ÉÓÃÓÚµ÷ÊÔ C/C++ ³ÌÐò¡£ËüÌṩÁËÖðÐÐÖ´ÐС¢Éó²éÄÚ´æºÍ¼Ä´æÆ÷ÄÚÈÝÒÔ¼°Ð޸ijÌÐòÖ´ÐÐÁ÷³ÌµÈ¹¦Ð§¡£

ÔõÑùʹÓà gdb

ʹÓà gdb µÄ°ì·¨ÈçÏ£º

  1. ±àÒë´øµ÷ÊÔÐÅÏ¢µÄÄ¿µÄ³ÌÐò£ºÊ¹Óà -g Ñ¡Ïî±àÒë³ÌÐò£¬ÒÔ±ãÌìÉúµ÷ÊÔÐÅÏ¢¡£
  2. ÔËÐÐ gdb£ºÊ¹ÓÃÒÔÏÂÏÂÁîÆô¶¯ gdb£º

    gdb ./program_name

    µÇ¼ºó¸´ÖÆ

  3. ¼ÓÔسÌÐò£ºÊ¹ÓÃÒÔÏÂÏÂÁ³ÌÐò¼ÓÔص½ gdb ÖУº

    file ./program_name

    µÇ¼ºó¸´ÖÆ

  4. ÉèÖöϵ㣺ʹÓÃÒÔÏÂÏÂÁîÔÚÖ¸¶¨ÐкÅÉèÖöϵ㣺

    break 

    µÇ¼ºó¸´ÖÆ

  5. ÔËÐгÌÐò£ºÊ¹ÓÃÒÔÏÂÏÂÁîÔËÐгÌÐò£º

    run

    µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ

  6. ÖðÐÐÖ´ÐУºÊ¹ÓÃÒÔÏÂÏÂÁîÖðÐÐÖ´ÐгÌÐò£º

    step

    µÇ¼ºó¸´ÖÆ

  7. Éó²éÄÚ´æºÍ¼Ä´æÆ÷£ºÊ¹ÓÃÒÔÏÂÏÂÁîÉó²é±äÁ¿ºÍ¼Ä´æÆ÷ÄÚÈÝ£º

    print 
    info registers

    µÇ¼ºó¸´ÖÆ

  8. Ð޸ijÌÐòÖ´ÐÐÁ÷³Ì£ºÊ¹ÓÃÒÔÏÂÏÂÁîÐ޸ijÌÐòÖ´ÐÐλÖãº

    next
    continue
    jump 

    µÇ¼ºó¸´ÖÆ

ʾÀý

ÒÔÏÂÊÇÒ»¸öʹÓà gdb µ÷ÊÔ¼òÆÓ³ÌÐòµÄʾÀý£º

// main.cpp
int main() {
    int x = 10;
    int y = 20;
    int sum = x + y;
    return 0;
}

µÇ¼ºó¸´ÖÆ

  1. ±àÒë³ÌÐò£º

    g++ -g main.cpp -o main

    µÇ¼ºó¸´ÖÆ

  2. Æô¶¯ gdb£º

    gdb ./main

    µÇ¼ºó¸´ÖÆ

  3. ¼ÓÔسÌÐò£º

    file ./main

    µÇ¼ºó¸´ÖÆ

  4. ÉèÖöϵ㣺

    break 6

    µÇ¼ºó¸´ÖÆ

  5. ÔËÐгÌÐò£º

    run

    µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ

  6. µ±³ÌÐòÔÚµÚ 6 Ðд¦Í£ÏÂʱ£¬Ê¹Óà print ÏÂÁîÉó²é±äÁ¿ÄÚÈÝ£º

    print x

    µÇ¼ºó¸´ÖÆ

¿ÉÒÔͨ¹ýÊäÈë help ÏÂÁîÉó²é gdb µÄÆäËû¿ÉÓõÄÏÂÁî¡£

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

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

Ïà¹ØÐÂÎÅ

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

18523999891

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

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

QR code
ÍøÕ¾µØͼ