linuxϵ÷ÊÔÈëÃÅÖ®ÔÝÍ£µÄʹÓÃ
×î½üͨ¶ÁÁËÒ»ÏÂÈí¼þµ÷ÊÔµÄÒÕÊõ£¨The art of debugging with gdb,ddd,eclipse£©£¬×ÜÌåÀ´ËµÊÇÒ»°ãÈëÃż¶µÄµ÷ÊÔÓÃÊé¡£ÎÒ¸öÈ˸оõ¶Ô³õѧgdbµÄÓÐÒ»¶¨µÄ×÷Óã¬ÓÐÀ¢ÓÚÌâÄ¿art¡£ÎÒ¼òµ¥µÄ×ö¸ö×ܽᣬ¹©ÈëÃŲο¼¡£Ö÷Òª½²ÁËgdbµÄ³£ÓÃÃüÁîÒÔ¼°³£¼ûbugµÄµ÷ÊÔ¡£
³£ÓÃÃüÁ
1. ÔÝÍ£»úÖÆ
a.¶ÏµãµÄʹÓÃ
ÉèÖöϵãµÄ·½·¨£ºbreak funtion ÀýÈ磺break main£¬±íʾÔÚmainº¯ÊýÈë¿Ú´¦ÔÝÍ£
break line_num ÀýÈ磺break 5 ±íʾÿµ½µ±Ç°Ô´ÎļþµÚ5ÐÐÔÝÍ£
ÁÙʱ¶Ïµã tbreak 6 £¬±íʾµÚ6ÐÐÔÝÍ£Ò»´Î
»ñÈ¡ËùÓеĶϵãÐÅÏ¢ info breakpoints
ɾ³ý¶Ïµã delete ¶Ïµã±àºÅ
Çå³ý¶Ïµã clear ÒªÇå³ý¶ÏµãËùÔÚÐкÅ
»Ö¸´ÔÝʱʧЧµÄ¶Ïµã enable ¶Ïµã±àºÅ
ʹ¶ÏµãʧЧ disable ¶Ïµã±àºÅ
b.¼ÌÐøµ÷ÊÔ
continue ¼ÌÐøÔËÐУ¬»Ö¸´
step µ¥²½½øÈ룬µ¥²½¸ú×Ù£¬½øÈë¾ßÌ庯Êý
next µ¥²½²»½øÈ룬µ¥²½¸ú×Ù£¬²»½øÈë¾ßÌ庯Êý
Ïà¹ØÎĵµ£º
Linux kernel ¹ØÓÚkeyboard²¿·Ö
keyboard.c ÓÃÓÚ´¦ÀíºÍ¼üÅÌÏà¹ØµÄinput_handler¡£ÆäÖаüÀ¨ºóÐøµÄ¼üÂëת»»ºÍÊä³ö
atkbd.c ³£ÓõļüÅ̲¼¾Ö£¬ÓÃÓÚ»ñµÃɨÃèÂ룬²¢½«Æä·¢Ë͵½input_handler Á´±íÖÐ
struct input_handler kbd_handler; ¼´Îªinput_handler Á´±íÖеÄÒ»¸öhandler
Òªhook¼üÅÌ»òÕ߯äËûinput²ãϵÄÉ豸ÐÅÏ¢£¬¾ ......
mkdir -p /usr/local/svn/to/bakcup
/usr/local/svn/bin/svnadmin hotcopy /usr/local/svn/repos/test /usr/local/svn/to/bakcup --clean-logs
ÏêϸÇë²Î¿¼svn ÊÖ²á:
http://wenku.baidu.com/view/7c4617791711cc7931b71655.html ......
Ê×ÏÈ£¬ÄÚ´æµÄ´óСÔÚlinuxÄÚºËÖеĻñÖª·½·¨
1.ͨ¹ýbootloader µÄ tag mem´«Èë¡£
Setup.c Öеĺ¯ÊýÈçÏ£º
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem ......
from: http://yangsq.javaeye.com/blog/162649
ƽʱµÄÍŶӿª·¢£¬ÉÙ²»ÁËÒªÓÃÒ»¸öÐ×÷¹¤¾ß¡£¶ÔÓÚÒÔǰ£¬ÎÞÒÉcvsÊǸöÎÞ´íµÄÑ¡Ôñ£¨ÏñIBMµÄÈ«Çò´úÂëά»¤£©¡£µ«ÊÇ£¬¿Æ¼¼ÔÚ·¢Õ¹Âð£¬ÏÖÔÚÓÐÁ˸üºÃµÄsvnÁË£¬ËùÒÔÖ±½Ó¾ÍÊÇsvn°É¡£ÓйØsvnµÄ¾ßÌåÐÅÏ¢¿ÉÒÔÉÏËüµÄ¹ÙÍø»òwww.subversion.org.cn
ÍøÉϹØÓÚsvnµÄÒ²²»ÉÙ£¬²»¹ý¸Ð¾õ´ó¶¼³ö× ......