Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ʹÓà 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 ÄÚºËÅäÖü°±àÒë¼ò½é

1.ΪʲôҪ±àÒëLinux ÄÚºË
¡¡¡¡ÖÚËùÖÜÖª,LinuxÊÇ¿ª·ÅÔ´ÂëµÄ²Ù×÷ϵͳ,¿ª·ÅÔ´ÂëÈí¼þ´ø¸øÎÒÃÇÕâ¼ÆËã»úˮƽÏà¶ÔÂäºóµÄÈËȺµÄ×î´óºÃ´¦,¾ÍÊÇ¿ÉÒÔ¿ìËÙѧϰÊÀ½ç¸ßˮƽµÄ³ÌÐò(Ìåϵ½á¹¹¼°±à³Ì·½·¨µÈµÈ),´Ó¶ø¿ìËÙÌá¸ß×ÔÉíˮƽ¡£È»¶øÕâ±¾Éí£¬Ò²Ê¹¶àÊý¿ª·ÅÔ´ÂëÈí¼þÔÚ±àÂëÒ×ÓÃÐÔ¡¢Õë¶ÔÐÔ·½Ãæ±È²»ÉÏMicrosoftµÈרҵÈí¼þ¹«Ë¾µÄ²úÆ·¡£Ê¹Óÿª ......

LinuxÇý¶¯Ñ§Ï°¼Ç¼ devfs_mk_cdev

LinuxÇý¶¯Ñ§Ï°¼Ç¼ devfs_mk_cdev


< type="text/javascript">
    
2.4ÄÚºË×¢²áÇý¶¯ÒªÓãº
int register_chrdev (unsigned int major, const char *name, struct file_operations *fops);
2.4ÄÚºË×¢ÏúÇý¶¯ÒªÓãº
int unregister_chrdev( unsigned int ......

»ùÓÚARM9ºÍLinuxµÄǶÈëʽ´òÓ¡ÖÕ¶Ëϵͳ


ÕÅ Õé
˶ʿÑо¿Éú
ÄϾ©ÐÅÏ¢¹¤³Ì´óѧ601ÐÅÏä,ÄϾ©210044
0 ÒýÑÔ
Ëæ
×Å¿ª·ÅÔ´´úÂëÔ˶¯µÄ·ÉËÙ·¢Õ¹£¬Linux²Ù×÷ϵͳԽÀ´Ô½Êܵ½ÈËÃǵÄÖØÊÓ¡£ÆäÁ¼ºÃµÄ¿É²Ã¼õÐÔÓë¿ÉÒÆÖ²ÐÔ£¬×¿Ô½µÄЧÂʺÍÎȶ¨ÐÔ£¬ÒÔ¼°Ö§³Ö¶àÖÖ´¦ÀíÆ÷Ìåϵ¼Ü¹¹µÄ
ÌØµã£¬Ê¹µÃLinuxÔ½À´Ô½¹ã·ºµÄÓ¦ÓÃÓÚǶÈëʽÁìÓò¡£Í¬Ê±£¬ARM9´¦ÀíÆ÷¸ßÖ÷ƵµÄ´¦ÀíËÙ¶È¡¢´óÈÝÁ¿µÄÉÁ´ ......

LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷

LinuxÉ豸Çý¶¯±à³ÌÖ®¶¨Ê±Æ÷
2006-10-26 13:34
×÷Õߣº
³ö´¦£ºLinux
ÔðÈα༭£º·½ÖÛ
    Ïà¹Ø×¨Ì⣺
LinuxÉ豸Çý¶¯³ÌÐò¿ª·¢ÈëÃÅ

¡¡¡¡LinuxÄÚºËÖж¨ÒåÁËÒ»¸ötimer_list½á¹¹£¬ÎÒÃÇÔÚÇý¶¯³ÌÐòÖпÉÒÔÀûÓÃÖ®£º
struct timer_list {
¡¡struct list_head list;
¡¡unsigned long expires; //¶¨Ê±Æ÷µ½ÆÚ ......

ÔÚLinuxÖÐʵÏÖ´óÈÝÁ¿ NAND FlashµÄYAFFS2Îļþϵͳ

·ÖÎöÁËǶÈëʽ»·¾³ÖÐYAFFS/YAFFS2ÎļþϵͳµÄÓŵ㣬Ìá³öYAFFS2²»½öÖ§³ÖСÈÝÁ¿µÄNAND flash£¬¶Ô´óÈÝÁ¿NAND flash¸ü¾ßÓÐÓÅÊÆ¡£²¢½éÉÜÁËYAFFS/YAFFS2Îļþϵͳ½á¹¹¡£×ÅÖØ½«YAFFS2ÎļþϵͳÔÚǶÈëʽLinuxϵͳÖеÄʵÏÖ¹ý³Ì°üÀ¨ÅäÖᢱàÒëÒÔ¼°²âÊÔÕû¸öÍêÕû¹ý³Ì×÷ÁËÏêϸµÄÂÛÊö¡£
¹Ø¼ü´Ê NAND flash£¬YAFFS/YAFFS2£¬Ç¶ÈëʽLinuxϵͳ
......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ