LinuxϵĶδíÎóµÄÔÒò¼°µ÷ÊÔ
¼ò¶øÑÔÖ®,²úÉú¶Î´íÎó¾ÍÊÇ·ÃÎÊÁË´íÎóµÄÄÚ´æ¶Î£¬Ò»°ãÊÇÄãûÓÐȨÏÞ£¬»òÕ߸ù±¾¾Í²»´æÔÚ¶ÔÓ¦µÄÎïÀíÄÚ´æ,ÓÈÆä³£¼ûµÄÊÇ·ÃÎÊ0µØÖ·.
Ò»°ãÀ´Ëµ,
¶Î´íÎó¾ÍÊÇÖ¸·ÃÎʵÄÄڴ泬³öÁËϵͳËù¸øÕâ¸ö³ÌÐòµÄÄÚ´æ¿Õ¼ä£¬Í¨³£Õâ¸öÖµÊÇÓÉgdtrÀ´±£´æµÄ£¬ËûÊÇÒ»¸ö48λµÄ¼Ä´æÆ÷£¬ÆäÖеÄ32λÊDZ£´æÓÉËüÖ¸ÏòµÄ
gdt±í£¬ºó13λ±£´æÏàÓ¦ÓÚgdtµÄϱ꣬×îºó3λ°üÀ¨Á˳ÌÐòÊÇ·ñÔÚÄÚ´æÖÐÒÔ¼°³ÌÐòµÄÔÚcpuÖеÄÔËÐм¶±ð,Ö¸ÏòµÄgdtÊÇÓÉÒÔ64λΪһ¸öµ¥Î»µÄ±í£¬
ÔÚÕâÕűíÖоͱ£´æ×ųÌÐòÔËÐеĴúÂë¶ÎÒÔ¼°Êý¾Ý¶ÎµÄÆðʼµØÖ·ÒÔ¼°Óë´ËÏàÓ¦µÄ¶ÎÏÞºÍÒ³Ãæ½»»»»¹ÓгÌÐòÔËÐм¶±ð»¹ÓÐÄÚ´æÁ£¶ÈµÈµÈµÄÐÅÏ¢¡£Ò»µ©Ò»¸ö³ÌÐò·¢ÉúÁËÔ½½ç
·ÃÎÊ£¬cpu¾Í»á²úÉúÏàÓ¦µÄÒì³£±£»¤£¬ÓÚÊÇsegmentation fault¾Í³öÏÖÁË.
ÔÚ±à³ÌÖÐÒÔϼ¸Àà×ö·¨ÈÝÒ×µ¼Ö¶δíÎó,»ù±¾ÊÇÊÇ´íÎóµØÊ¹ÓÃÖ¸ÕëÒýÆðµÄ
1)·ÃÎÊϵͳÊý¾ÝÇø£¬ÓÈÆäÊÇÍù ϵͳ±£»¤µÄÄÚ´æµØÖ·Ð´Êý¾Ý
×î³£¼û¾ÍÊǸøÒ»¸öÖ¸ÕëÒÔ0µØÖ·
2)ÄÚ´æÔ½½ç(Êý×éÔ½½ç£¬±äÁ¿ÀàÐͲ»Ò»ÖµÈ) ·ÃÎʵ½²»ÊôÓÚÄãµÄÄÚ´æÇøÓò
½â¾ö·½·¨
ÎÒ
ÃÇÔÚÓÃC/C++ÓïÑÔд³ÌÐòµÄʱºî£¬ÄÚ´æ¹ÜÀíµÄ¾ø´ó²¿·Ö¹¤×÷¶¼ÊÇÐèÒªÎÒÃÇÀ´×öµÄ¡£Êµ¼ÊÉÏ£¬ÄÚ´æ¹ÜÀíÊÇÒ»¸ö±È½Ï·±ËöµÄ¹¤×÷£¬ÎÞÂÛÄã¶à¸ßÃ÷£¬¾Ñé¶à·á¸»£¬ÄÑÃâ
»áÔÚ´Ë´¦·¸Ð©Ð¡´íÎ󣬶øÍ¨³£ÕâЩ´íÎóÓÖÊÇÄÇôµÄdzÏÔ¶øÒ×ÓÚÏû³ý¡£µ«ÊÇÊÖ¹¤“³ý³æ”£¨debug£©£¬ÍùÍùÊÇЧÂʵÍÏÂÇÒÈÃÈËÑá·³µÄ£¬±¾ÎĽ«¾Í"¶Î´íÎó"Õâ¸öÄÚ
´æ·ÃÎÊÔ½½çµÄ´íÎó̸̸ÈçºÎ¿ìËÙ¶¨Î»ÕâЩ"¶Î´íÎó"µÄÓï¾ä¡£
ÏÂÃæ½«¾ÍÒÔϵÄÒ»¸ö´æÔڶδíÎóµÄ³ÌÐò½éÉܼ¸ÖÖµ÷ÊÔ·½·¨£º
1 dummy_function (void)
2 {
3 unsigned char *ptr = 0x00;
4 *ptr = 0x00;
5 }
6
7 int main (void)
8 {
9 dummy_function ();
10
11 return 0;
12 }
×÷Ϊһ¸öÊìÁ·µÄC/C++³ÌÐòÔ±£¬ÒÔÉÏ´úÂëµÄbugÓ¦¸ÃÊǺÜ
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
»¥³âÁ¿´Ó±¾ÖÊÉÏ˵¾ÍÊÇÒ»°ÑËø, Ìṩ¶Ô¹²Ïí×ÊÔ´µÄ±£»¤·ÃÎÊ.
1. ³õʼ»¯:
ÔÚLinuxÏÂ, Ï̵߳Ļ¥³âÁ¿Êý¾ÝÀàÐÍÊÇpthread_mutex_t. ÔÚʹÓÃǰ, Òª¶ÔËü½øÐгõʼ»¯:
¶ÔÓÚ¾²Ì¬·ÖÅäµÄ»¥³âÁ¿, ¿ÉÒÔ°ÑËüÉèÖÃΪPTHREAD_MUTEX_INITIALIZER, »òÕßµ÷ÓÃpthread_mutex_init.
¶ÔÓÚ¶¯Ì¬·ÖÅäµÄ»¥³âÁ¿, ÔÚÉêÇëÄÚ´æ(malloc)Ö® ......
CygwinÊÇÐí¶à×ÔÓÉÈí¼þµÄ¼¯ºÏ£¬×î³õÓÉCygnus Solutions¿ª·¢£¬ÓÃÓÚ¸÷ÖÖ°æ±¾µÄMicrosoft WindowsÉÏ£¬ÔËÐÐUNIXÀà
ϵͳ¡£CygwinµÄÖ÷ҪĿµÄÊÇͨ¹ýÖØÐ±àÒ룬½«POSIXϵͳ£¨ÀýÈçLinux¡¢BSD£¬ÒÔ¼°ÆäËûUnix
ϵ
ͳ£©ÉϵÄÈí¼þÒÆÖ²µ½WindowsÉÏ¡£CygwinÒÆÖ²¹¤×÷ÔÚWindows NT¡¢Windows 2000¡¢Windows
XPÒÔ¼°Windows Server 2003ÉϱȽϺ ......
/etc/inittabÎļþµÄ×ֶμ°Æä˵Ã÷
/etc/inittabÎļþÖÐÿ¸öµÇ¼ÇÏîµÄ½á¹¹¶¼ÊÇÒ»ÑùµÄ£¬¹²·ÖΪÒÔðºÅ“£º”·Ö¸ôµÄ4¸ö×ֶΡ£¾ßÌåÈçÏ£º
identifier : run_level : action : process
ÆäÖУ¬¸÷×Ö¶ÎÒÔ¼°ÓëÆäÏà¹ØµÄ˵Ã÷ÈçÏ£º
identifier
µÇ¼ÇÏî±êʶ·û£¬×î¶àΪ4¸ö×Ö·û¡£ÓÃÓÚΩһµØ±êʶ/etc/inittabÎļþÖеÄÿһ¸öµÇ¼ÇÏ ......
ÄÚºËʹÓõĻù±¾Êý¾ÝÀàÐÍÖ÷ÒªÓУº int £º ±ê×¼µÄCÓïÑÔÕûÊýÀàÐÍ u32 £º 32λÕûÊýÀàÐÍ pid_t £º ÌØ¶¨Äں˶ÔÏópidµÄÀàÐÍ ÔÚ²»Í¬CPUÌåϵ½á¹¹ÉÏ£¬CÓïÑÔµÄÊý¾ÝÀàÐÍËùÕ¼ÓõĿռäÊDz»Ò»ÑùµÄ¡£ÔÚx86ϵÁнṹÏ£¬Êý¾ÝÀàÐÍÕ¼ÓõÄ×Ö½ÚÊýÈçϱíËùʾ£º arch char short int long ptr ......