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ϵͳÖУ¬¿ÉÖ´ÐÐÎļþûÓÐͳһµÄºó׺£¬ÏµÍ³´ÓÎļþµÄÊôÐÔÀ´Çø·Ö¿ÉÖ´ÐÐÎļþºÍ²»¿ÉÖ´ÐÐÎļþ¡£¶øgccÔòͨ¹ýºó׺À´Çø±ðÊäÈëÎļþµÄÀà±ð£¬ÏÂÃæÎÒÃÇÀ´½éÉÜgccËù×ñѵIJ¿·ÖÔ¼¶¨¹æÔò¡£Ò»°ã
.cΪºó׺µÄÎļþ£¬CÓïÑÔÔ´´úÂëÎļþ£»
.aΪºó׺µÄÎļþ£¬ÊÇÓÉÄ¿±êÎļþ¹¹³ÉµÄµµ°¸¿âÎļþ£»
.C£¬.cc»ò.cxxΪºó׺µÄÎļþ£¬ÊÇC ......
1> ʹÓÃCDPATHÉèÖà cd ÃüÁîµÄ¹¤×÷Ŀ¼
[ramesh@dev-db ~]# pwd
/home/ramesh
[ramesh@dev-db ~]# cd mail
-bash: cd: mail: No such file or directory
[×¢Ò⣺ÔÚµ±Ç°Ä¿Â¼ÏÂѰÕÒMAILĿ¼]
[ramesh@dev-db ~]# export CDPATH=/etc
[ramesh@dev-db ~]# cd mail /etc/mail  ......
Öйú×îÍêÕûµÄsysctl.confÓÅ»¯·½°¸
ÍøÉϹØÓÚsysctl.confµÄÓÅ»¯·½°¸Óи÷ÖÖ°æ±¾£¬´ó¶à¶¼ÊdzÀ´³È¥µÄ£¬ÈÃÐÂÈË¿´Á˺ÜÃÔ㡣Ϊ½â¾ö´ËÎÊÌ⣬¾¹ýÁ½ÌìµÄÕûÀí£¬²éÁËN¶à×ÊÁÏ£¬½«´ó¼Ò³£ÓõÄ×ܽáÈçÏ£¬ºÜ¶àĬÈϵIJ»ÐèÒªÐ޸ĵÄÔÝÎ´Éæ¼°£¬½ñºó½«Öð²½°ÑËùÓеÄÏîÄ¿¶¼Óиö·Òë¡¢½²½â¡¢Ð޸Ľ¨Ò飬ÈçÓÐÐ޸쬽«ÒÔ´ËÎÄΪ׼£¬ÆäËûµØ·½µÄ ......
¹¦ÄÜ˵Ã÷£ºÇãµ¹ÍøÂç´«ÊäÊý¾Ý¡£
Óï¡¡¡¡·¨£ºtcpdump [-adeflnNOpqStvx][-c<Êý¾Ý°üÊýÄ¿>][-dd][-ddd][-F<±í´ïÎļþ>][-i<ÍøÂç½çÃæ>][-r<Êý¾Ý°üÎļþ>][-s<Êý¾Ý°ü´óС>][-tt][-T<Êý¾Ý°üÀàÐÍ>][-vv][-w<Êý¾Ý°üÎļþ>][Êä³öÊý¾ÝÀ¸Î»]
²¹³ä˵Ã÷£ºÖ´ÐÐtcpdumpÖ¸Áî¿ÉÁгö¾¹ýÖ¸¶¨ÍøÂç½çÃæµ ......
1.¶¨Ò庯ÊýÖ¸ÕëÀàÐÍ
Òª¸ù¾Ý¶¯Ì¬¿âÖÐҩʹÓõĺ¯Êý£¬ÔÚÍâÃæ¶¨ÒåͬÑùÀàÐ͵ĺ¯ÊýÖ¸ÕëÀàÐÍ£¬¹©ÒÔºóʹÓÃ
typedef unsigned long(*POpenDev)(IN unsigned long int);
2. ¶¨Ò庯ÊýÖ¸Õë
POpenDev OpenDev;
3.¶¯Ì¬¼ÓÔØ¶¯Ì¬¿â
HANDLE sohandle = NULL;
sohandle = dlopen("libNiKeyDll.so", RTLD_NOW);
......