linuxϵĵ÷ÊÔ¹¤¾ß
×ªÔØÊ±Çë×¢Ã÷³ö´¦ºÍ×÷ÕßÁªÏµ·½Ê½
ÎÄÕ³ö´¦£ºhttp://www.limodev.cn/blog
×÷ÕßÁªÏµ·½Ê½£ºÀîÏȾ² <xianjimli at hotmail dot com>
Ëæ×ÅXPµÄÁ÷ÐУ¬ÈËÃÇÔ½À´Ô½×¢ÖØÈí¼þµÄǰÆÚÉè¼Æ¡¢ºóÆÚµÄʵÏÖ£¬ÒÔ¼°¹á´©ÓÚÆäÖеIJâÊÔ¹¤×÷£¬¾¹ýÕâ¸ö¹ý³Ì³öÀ´µÄ×ÔÈ»ÊǸßÖÊÁ¿µÄÈí¼þ¡£ÉõÖÁÓÐÈËÉù³ÆXP»áÌÔ̵÷ÊÔÆ÷£¡Õ⵱ȻÊÇÓÐÒ»¶¨µÀÀíµÄ£¬È»¶ø¾ÍĿǰµÄÏÖʵÀ´¿´£¬Õ⻹ÊÇÒ»ÖÖÀíÏë¡£ÔÚÈÕ³£¹¤×÷ÖУ¬µ÷ÊÔ¹¤¾ß»¹ÊDZز»¿ÉÉٵġ£ÔÚLinuxÏ£¬µ÷ÊÔ¹¤¾ß²¢·ÇÖ»ÓÐgdb£¬»¹ÓкܶàÆäËüµ÷ÊÔ¹¤¾ß£¬ËüÃǶ¼¸÷ÓÐËù³¤£¬²àÖØ·½ÃæÒ²ÓÐËù²»Í¬¡£±¾ÎĽéÉܼ¸ÖÖ±ÊÕß³£Óõĵ÷ÊÔ¹¤¾ß£º
1. mtrace
ÔÚlinuxÏ¿ª·¢Ó¦ÓóÌÐò£¬ÓÃC/C++ÓïÑԵľӶࡣÄÚ´æÐ¹Â¶ºÍÄÚ´æÔ½½çµÈÄÚ´æ´íÎó£¬ÎÞÒÉÊÇÆäÖÐ×îÍ·ÌÛµÄÎÊÌâÖ®Ò»¡£glibcΪ½â¾öÄÚ´æ´íÎóÌṩÁËÁ½ÖÖ·½°¸£º
Ò»ÖÖÊÇhookÄÚ´æ¹ÜÀíº¯Êý¡£hookÄÚ´æ¹ÜÀíº¯Êýºó£¬Äã¿ÉÒÔͨ¹ý¼ÇÏÂÄÚ´æ·ÖÅäµÄÀúÊ·¼Ç¼£¬ÔÚ³ÌÐòÖÕֹʱ²é¿´ÊÇ·ñÓÐÄÚ´æÐ¹Â¶£¬ÕâÑù¾Í¿ÉÒÔÕÒ³öÄÚ´æÐ¹Â¶µÄµØ·½ÁË¡£ÄãÒ²¿ÉÒÔͨ¹ýÔÚËù·ÖÅäÄÚ´æµÄÊ×βдÈëÌØÊâµÄ±êÖ¾£¬ÔÚÊÍ·ÅÄÚ´æÊ±¼ì²é¸Ã±êÖ¾ÊÇ·ñ±»ÆÆ»µÁË£¬ÕâÑù¾Í¿ÉÒÔ´ïµ½¼ì²éÄÚ´æÔ½½çÎÊÌâµÄÄ¿µÄ¡£
ÁíÍâÒ»ÖÖ·½·¨¸ü¼òµ¥£¬glibcÒѾΪµÚÒ»ÖÖ·½°¸ÌṩÁËĬÈϵÄʵÏÖ£¬ÄãÒª×öµÄÖ»ÊÇÔÚÌØ¶¨µÄλÖõ÷ÓÃmtrace/muntraceÁ½¸öº¯Êý£¬ËüÃǵĺ¯ÊýÔÐÍÈçÏ£º
#include
void mtrace(void);
void muntrace(void);
Äã¿ÉÄÜ»áÎÊ£¬ÔÚÄÄÀïµ÷ÕâÁ½ÖÖº¯Êý×îºÃ£¿ÕâûÓй̶¨µÄ´ð°¸£¬ÒªÊÓ¾ßÌåÇé¿ö¶ø¶¨¡£¶ÔÓÚС³ÌÐòÀ´Ëµ£¬ÔÚ½øÈëmainʱµ÷ÓÃmtrace£¬ÔÚÍ˳ömainº¯Êýʱµ÷ÓÃmuntrace¡£¶ÔÓÚ´óÐÍÈí¼þ£¬ÕâÑù×ö¿ÉÄÜ»á¼Ç¼¹ý¶àµÄÐÅÏ¢£¬·ÖÎöÕâЩ¼Ç¼»á±È½ÏÂý£¬Õâʱ¿ÉÒÔÔÚÄãËù»³ÒÉ´úÂëµÄÁ½¶Ëµ÷Óá£
ÁíÍ⣬»¹ÐèÒªÉèÖÃÒ»¸ö»·¾³±äÁ¿MALLOC_TRACE£¬ËüÊÇÒ»¸öÎļþÃû£¬Òª±£Ö¤µ±Ç°Óû§ÓÐȨÏÞ´´½¨ºÍдÈë¸ÃÎļþ¡£glibcµÄÄÚ´æ¹ÜÀíÆ÷»á°ÑÄÚ´æ·ÖÅäµÄÀúÊ·ÐÅϢдÈëµ½MALLOC_TRACEÖ¸¶¨µÄÎļþÖС£
³ÌÐòÔËÐÐÍê±Ïºó£¬Ê¹ÓÃmtrace¹¤¾ß·ÖÎöÕâЩÄÚ´æ·ÖÅäÀúÊ·ÐÅÏ¢£¬¿ÉÒÔ²é³öÄÚ´æ´íÎóµÄλÖã¨mtraceÔÚglibc-utilsÈí¼þ°üÀï)¡£
2. strace
ÔÚ±à³Ìʱ£¬¼ì²éº¯ÊýµÄ·µ»ØÖµÊÇÒ»ÖÖºÃϰ¹ß¡£¶ÔÓÚÏñglibcµÈ±ê×¼CµÄº¯Êý£¬¹â¼ì²é·µ»ØÖµÊDz»¹»µÄ£¬»¹ÐèÒª¼ì²éerrnoµÄÖµ¡£ÕâÑùµÄ³ÌÐòÍùÍùÏÔµÃÈß³¤£¬²»¹»¼ò½à¡£Í¬Ê±Ò²¿ÉÄÜÊdzöÓÚ͵ÀÁµÄÔÒò£¬´ó¶àÊý³ÌÐòÀﲢûÓÐ×öÕâÑùµÄ¼ì²é¡£
ÕâÑùµÄ³ÌÐò£¬Ò»µ©³öÏÖ´íÎó£¬Óõ÷ÊÔÆ÷Ò»²½Ò»²½¶¨Î»´íÎó£¬È»ºóÏë·¨²é³ö´íÎóµÄÔÒò£¬Ò²ÊÇ¿ÉÒԵ쬲»¹ý±È½ÏÂé·³£¬¶Ôµ÷ÊÔÆ÷À´ËµÓÐЩ´ó²ÄСÓ㬲»Ì«¿ÉÈ¡¡£Õâʱ£¬ÓÃstraceÃüÁî¿ÉÄÜ»á¸ü
Ïà¹ØÎĵµ£º
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâÆª·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´Ë×ªÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨ÕâÆª²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ÔÎÄÍøÖ·£ºhttp://blog.chinaunix.net/u1/51562/showart_1341707.html
Ò»:ǰÑÔ
RCU»úÖÆ³öÏֵıȽÏÔç,Ö»ÊÇÔÚlinux kernelÖÐÒ»Ö±µ½2.5°æ±¾µÄʱºò²Å±»²ÉÓÃ.¹ØÓÚRCU»úÖÆ,ÕâÀï¾Í²»×ö¹ý¶àµÄ½éÉÜÁË,ÍøÉÏÓкܶàÓйØRCU½éÉܺÍʹÓõÄÎĵµ.Çë×ÔÐвéÔÄ.±¾ÎÄÖ÷ÒªÊÇ´Ólinux kernelÔ´´úÂëµÄ½Ç¶È.À´·ÖÎöRCUµÄʵÏÖ.
ÔÚÌÖÂÛRCUµÄʵ ......
Chapter 1: Thread
¢Ù thread functions
1. pthread_self();
2. thread existing
you can get the value of rval_ptr just by pthread_join(pthread_t tht, void ** rval_ptr)
cancel a thread as the thread exits with PTHREAD_CANCELED in pthread_exit, this functio ......
ÔÚ¿½±´Êý¾ÝµÄʱºò£¬Èç¹ûÓöµ½Ò»¶ÑСÎļþ£¬¼´Ê¹×ÜÊý¾ÝÁ¿ºÜС£¬¿½±´Ò²»áºÜ·Ñʱ£¬ÔÚwinÏ£¬ÓÐÒ»¸öÈí¼þ½Ðfastcopy£¬¿ÉÒÔʵÏÖ¿ìËÙ¿½±´£¬¾Ý˵ʹÓÃÁËÒ»ÖÖ½ÐÄÚ´æÓ³ÉäµÄ¼¼Êõ£¬ÄÇôÔÚLinuxÏÂÓÐûÓÐÄØ£¿
ÎÒÕÒÁ˰ëÌ죬ÔÀ´LInuxϸù±¾²»ÐèÒªµ¥¶ÀµÄÈí¼þ£¬ÓÃÏÖÓеÄÃüÁî×éºÏ¾ÍOKÁË£¡
ÓиßÊÖÔÚÁ½¸ö·þÎñÆ÷¼ä´«Êý¾Ý£¬Ê¹ÓÃÃüÁʵÏÖÁË¿ìËÙ´«Ë ......
1£©/etc/sysconfig/network-scripts/ifcfg-interface-name
ÅäÖÃÎļþifcfg-interface-name°üº¬Á˳õʼ»¯½Ó¿ÚËùÐèµÄ´ó²¿·ÖÏêϸÐÅÏ¢¡£ÆäÖÐinterface-name½«¸ù¾ÝÍø¿¨µÄÀàÐͺÍÅÅÐò¶ø²»Í¬£¬Ò»°ãÆäÃû×ÖΪeth0¡¢eth1¡¢ppp0µÈ£¬ÆäÖÐeth±íʾÒÔÌ«£¨eth0£©ÀàÐÍÍø¿¨£¬0±íʾµÚÒ»¿éÍø¿¨£¬1±íʾµÚ¶þ¿éÍø¿¨£¬¶øppp0Ôò±íʾµÚÒ»¸öpoint-to-poir ......