ʹÓà GDB µ÷ÊÔ Linux Èí¼þ
×÷Õߣºdio
email: hao@peng.com.cn
ÈÕÆÚ£º8/21/2001 1:00:47 PM
ÄÚÈÝ£º
±àÒë
ÔËÐÐ gdb
µ÷ÊԻỰʾÀý
ʹÓöϵã
¸ü¶à¶ÏµãºÍ¹Û²ìµã
Core Îļþ
¶ÑÕ»¸ú×Ù
Á¬½Óµ½ÆäËü½ø³Ì
ÆäËüС¼¼ÇÉ
½áÊøÓï
²Î¿¼×ÊÁÏ
¹ØÓÚ×÷Õß
GNU µ÷ÊÔÆ÷¼ò½é
×÷Õß:David Seager
Linux µÄ´ó²¿·ÖÌØÉ«Ô´×ÔÓÚ shell µÄ GNU µ÷ÊÔÆ÷£¬Ò²³Æ×÷ gdb¡£gdb ¿ÉÒÔÈÃÄú²é¿´³ÌÐòµÄÄÚ²¿½á¹¹¡¢´òÓ¡±äÁ¿Öµ¡¢ÉèÖöϵ㣬ÒÔ¼°µ¥²½µ÷ÊÔÔ´´úÂë¡£ËüÊǹ¦Äܼ«ÆäÇ¿´óµÄ¹¤¾ß£¬ÊÊÓÃÓÚÐÞ¸´³ÌÐò´úÂëÖеÄÎÊÌâ¡£ÔÚ±¾ÎÄÖУ¬ÎÒ½«³¢ÊÔ˵Ã÷ gdb Óжà°ô£¬¶àʵÓá£
±àÒë
¿ªÊ¼µ÷ÊÔ֮ǰ£¬±ØÐëÓóÌÐòÖеĵ÷ÊÔÐÅÏ¢±àÒëÒªµ÷ÊԵijÌÐò¡£ÕâÑù£¬gdb ²ÅÄܹ»µ÷ÊÔËùʹÓõıäÁ¿¡¢´úÂëÐкͺ¯Êý¡£Èç¹ûÒª½øÐбàÒ룬ÇëÔÚ gcc£¨»ò g++£©ÏÂʹÓöîÍâµÄ -g Ñ¡ÏîÀ´±àÒë³ÌÐò£º
gcc -g eg.c -o eg
ÔËÐÐ gdb
ÔÚ shell ÖУ¬¿ÉÒÔʹÓà gdb ÃüÁî²¢Ö¸¶¨³ÌÐòÃû×÷Ϊ²ÎÊýÀ´ÔËÐÐ gdb£¬ÀýÈç gdb eg£»»òÕßÔÚ gdb ÖУ¬¿ÉÒÔʹÓà file ÃüÁîÀ´×°ÈëÒªµ÷ÊԵijÌÐò£¬ÀýÈç file eg¡£ÕâÁ½ÖÖ·½Ê½¶¼¼ÙÉèÄúÊÇÔÚ°üº¬³ÌÐòµÄĿ¼ÖÐÖ´ÐÐÃüÁî¡£×°Èë³ÌÐòÖ®ºó£¬¿ÉÒÔÓà gdb ÃüÁî un À´Æô¶¯³ÌÐò¡£
µ÷ÊԻỰʾÀý
Èç¹ûÒ»ÇÐÕý³££¬³ÌÐò½«Ö´Ðе½½áÊø£¬´Ëʱ gdb ½«ÖØÐ»ñµÃ¿ØÖÆ¡£µ«Èç¹ûÓдíÎ󽫻áÔõôÑù£¿ÕâÖÖÇé¿öÏ£¬gdb »á»ñµÃ¿ØÖƲ¢ÖжϳÌÐò£¬´Ó¶ø¿ÉÒÔÈÃÄú¼ì²éËùÓÐÊÂÎïµÄ״̬£¬Èç¹ûÔËÆøºÃµÄ»°£¬¿ÉÒÔÕÒ³öÔÒò¡£ÎªÁËÒý·¢ÕâÖÖÇé¿ö£¬ÎÒÃǽ«Ê¹ÓÃÒ»¸öʾÀý³ÌÐò£º
´úÂëʾÀý eg1.c
#include
int wib(int no1, int no2)
{
int result, diff;
diff = no1 - no2;
result = no1 / diff;
return result;
}
int main(int argc, char *argv[])
{
int value, div, result, i, total;
value = 10;
div = 6;
total = 0;
for(i = 0; i < 10; i++)
{
result = wib(value, div);
total += result;
div++;
value--;
}
printf("%d wibed by %d equals %dn", value, div, total);
return 0;
}
Õâ¸ö³ÌÐò½«ÔËÐÐ 10 ´Î for Ñ»·£¬Ê¹Óà wib() º¯Êý¼ÆËã³öÀÛ»ýÖµ£¬×îºó´òÓ¡³ö½á¹û¡£
ÔÚÄúϲ»¶µÄÎı¾±à¼Æ÷ÖÐÊäÈëÕâ¸ö³ÌÐò£¨Òª±£³ÖÏàͬµÄÐоࣩ£¬±£´æÎª eg1.c£¬Ê¹Óà gcc -g eg1.c -o eg1 ½øÐбàÒ룬²¢Óà gdb eg1 Æô¶¯ gdb¡£Ê¹Óà un ÔËÐгÌÐò¿ÉÄÜ»á²úÉúÒÔÏÂÏûÏ¢£º
Program received signal SIGFPE, Arithmetic exception.
0x80483ea in wib (no1=8, no2=8) at eg1.c:7
7 result = no1 / diff;
(gdb)
g
Ïà¹ØÎĵµ£º
×î½üÒ»¶Îʱ¼äÔÚlinuxÏÂÓÃC×öһЩѧϰºÍ¿ª·¢£¬µ«ÊÇÓÉÓÚ¾Ñé²»×㣬ÎÊÌâ¶à¶à¡£¶ø¶Î´íÎó¾ÍÊÇÈÃÎҷdz£Í·Í´µÄÒ»¸öÎÊÌâ¡£²»¹ý£¬Ä¿Ç°Ð´Ò»¸öһǧÐÐ×óÓҵĴúÂ룬ҲºÜÉÙ³öÏֶδíÎ󣬻òÕßÊǼ´Ê¹³öÏÖÁË£¬Ò²ºÜÈÝÒ×ÕÒ³öÀ´£¬²¢ÇÒ´¦Àíµô¡£
ÄÇʲôÊǶδíÎ󣿶δíÎóΪʲôÊǸöÂ鷳ʣ¿ÒÔ¼°Ôõô·¢ÏÖ³ÌÐòÖеĶΠ......
×î½üÔÚ×¼±¸gre¿¼ÊÔ£¬ÓÚÊÇÕÒÁËÕÒlinuxϵı³µ¥´ÊÈí¼þ£¬¾ÍÊÇÕâ¸öexciteword£¬ºÃÏñÊǸúÇáÇáËÉËɱ³µ¥´Ê²î²»¶à£¬Í¦ºÃÓõġ£
°²×°·½·¨£º
ubuntuÏÂ×î¼òµ¥µÄ·½·¨¾ÍÊÇapt-get installÁË¡£
»¹¿ÉÒÔ´Ó¹ÙÍøÉÏÏÂÔØrpm°ü£¬Ê¹ÓÃalienתΪdeb°ü¡£alien¹¤¾ßûÓеϰ¿ÉÒÔʹÓÃapt-get install alienÀ´ÏÂÔØ¡£×ª»¯Îªdeb°üºó£¬Ë«»÷×Ô¶¯°²×°¾Í¿ÉÒ ......
\d £º´ú±íÈÕÆÚ£¬¸ñʽΪweekday month date£¬ÀýÈ磺"Mon Aug 1"
\H £ºÍêÕûµÄÖ÷»úÃû³Æ¡£ÀýÈ磺ÎҵĻúÆ÷Ãû³ÆÎª£ºfc4.linux£¬ÔòÕâ¸öÃû³Æ¾ÍÊÇfc4.linux
\h £º½öÈ¡Ö÷»úµÄµÚÒ»¸öÃû×Ö£¬ÈçÉÏÀý£¬ÔòΪfc4£¬.linuxÔò±»Ê¡ÂÔ
\t £ºÏÔʾʱ¼äΪ24Сʱ¸ñʽ£¬È磺HH£ºMM£ºSS
\T £ºÏÔʾʱ¼äΪ12Сʱ¸ñʽ
\A £ºÏÔʾʱ¼äΪ24 ......
DHCPÊÇDynamic Host Configuration ProtocolµÄÓ¢ÎÄËõд£¬·Òë¹ýÀ´¾ÍÊǶ¯Ì¬Ö÷»úÅäÖÃͨѶÐÒé¡£ËüµÄ¹¦ÄܾÍÊÇÎªÍøÂçÁ¬½Ó¶¯Ì¬·ÖÅäIPµØÖ·£¬ËüÔÊÐí¿Í»§¶Ë¼ÆËã»úÏòÍøÂç·þÎñÆ÷×Ô¶¯»ñÈ¡ÍøÂçÉèÖá£DHCP·þÎñÆ÷ʹµÃÍøÂç¹ÜÀíÔ±ÔÚ¹ÜÀíÍøÂçÖÐÔÚÍøÂçÖÐÔö¼Ó¡¢É¾³ýÍøÂç½Úµã»òÕßÖØÐÂÅäÖÃÍøÂçʱ£¬¹¤×÷±äµÃ·Ç³£¼òµ¥£¬ÎÞÐëÊÖ¹¤µÄ·ÖÅäIPµØÖ ......
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
±àÒ ......