Linux Ï C++ Òì³£´¦Àí¼¼ÇÉ
http://www.ibm.com/developerworks/cn/linux/l-cppexcep.html
´¦Àí¹ÌÓÐÓïÑÔ¾ÖÏÞÐÔµÄËÄÖÖ¼¼Êõ
´¦Àí C++ ÖеÄÒì³£»áÔÚÓïÑÔ¼¶±ðÉÏÓöµ½ÉÙÐíÒþº¬ÏÞÖÆ£¬µ«ÔÚijЩÇé¿öÏ£¬Äú¿ÉÒÔÈƹýËüÃÇ¡£Ñ§Ï°¸÷ÖÖÀûÓÃÒì³£µÄ·½·¨£¬Äú¾Í¿ÉÒÔÉú²ú¸ü¿É¿¿µÄÓ¦ÓóÌÐò¡£
±£ÁôÒì³£À´Ô´ÐÅÏ¢
ÔÚ C++ÖУ¬ÎÞÂÛºÎʱÔÚ´¦Àí³ÌÐòÄÚ²¶»ñÒ»¸öÒì³££¬¹ØÓÚ¸ÃÒì³£À´Ô´µÄÐÅÏ¢¶¼ÊDz»ÎªÈËÖªµÄ¡£Òì³£µÄ¾ßÌåÀ´Ô´¿ÉÒÔÌṩÐí¶à¸üºÃµØ´¦Àí¸ÃÒì³£µÄÖØÒªÐÅÏ¢£¬»òÕßÌṩһЩ¿ÉÒÔ¸½¼Óµ½´íÎóÈÕÖ¾µÄÐÅÏ¢£¬ÒÔ±ãÒÔºó½øÐзÖÎö¡£
ΪÁ˽â¾öÕâÒ»ÎÊÌ⣬¿ÉÒÔÔÚÅ׳öÒì³£Óï¾äÆڼ䣬ÔÚÒì³£¶ÔÏóµÄ¹¹Ô캯ÊýÖÐÉú³ÉÒ»¸ö¶ÑÕ»¸ú×Ù¡£ExceptionTracer
ÊÇʾ·¶ÕâÖÖÐÐΪµÄÒ»¸öÀà¡£
//ÔÚÒì³£¶ÔÏó¹¹Ô캯ÊýÖÐÉú³ÉÒ»¸ö¶ÑÕ»¸ú×Ù
// Sample Program:
// Compiler: gcc 3.2.3 20030502
// Linux: Red Hat
#include <execinfo.h>
#include <signal.h>
#include <exception>
#include <iostream>
using namespace std;
/////////////////////////////////////////////
class ExceptionTracer
{
public:
ExceptionTracer()
{
void * array[25];
int nSize = backtrace(array, 25);
char ** symbols = backtrace_symbols(array, nSize);
for (int i = 0; i < nSize; i++)
{
cout << symbols[i] << endl;
}
free(symbols);
}
¹ÜÀíÐźÅ
ÿ
µ±½ø³ÌÖ´ÐÐÒ»¸öÁîÈËÌÖÑáµÄ¶¯×÷£¬ÒÔÖÂÓÚ Linux™
Äں˷¢³öÒ»¸öÐźÅʱ£¬¸ÃÐźŶ¼±ØÐë±»´¦Àí¡£ÐźŴ¦Àí³ÌÐòͨ³£»áÊÍ·ÅһЩÖØÒª×ÊÔ´²¢ÖÕÖ¹Ó¦ÓóÌÐò¡£ÔÚÕâÖÖÇé¿öÏ£¬¶ÑÕ»ÉϵÄËùÓжÔÏóʵÀý¶¼´¦ÓÚδÆÆ»µ×´Ì¬¡£Áí
Ò»·½Ã棬Èç¹ûÕâЩÐźű»×ª»»³É C++ Òì³££¬ÄÇôÄú¿ÉÒÔÓÅÑŵص÷ÓÃÆä¹¹Ô캯Êý£¬²¢°²ÅŶà²ã catch ¿é£¬ÒÔ±ã¸üºÃµØ´¦ÀíÕâЩÐźš£
Çåµ¥ 2 Öж¨ÒåµÄ SignalExceptionClass
£¬ÌṩÁ˱íʾÄں˿ÉÄÜ·¢³öÐÅºÅµÄ C++ Òì³£µÄ³éÏó¡£SignalTranslator
ÊÇÒ»¸ö»ùÓÚ SignalExceptionClass
µÄÄ£°åÀ࣬Ëüͨ³£ÓÃÀ´ÊµÏÖµ½ C++ Òì³£µÄת»»¡£ÔÚÈκÎ˲¼ä£¬Ö»ÄÜÓÐÒ»¸öÐźŴ¦Àí³ÌÐò´¦ÀíÒ»¸ö»î¶¯½ø³ÌµÄÒ»¸öÐźš£Òò´Ë£¬SignalTranslator
²ÉÓÃÁË singleton Éè¼Æģʽ¡£ÕûÌå¸ÅÄîͨ¹ýÓÃÓÚ SIGSEGV µÄ SegmentationFault
ÀàºÍÓÃÓÚ SIGFPE µÄ FloatingPointException
ÀàµÃµ½ÁËչʾ¡£
template <class SignalExceptionC
Ïà¹ØÎĵµ£º
LinuxÄÚºËά»¤ÕßGreg Kroah-HartmanÔøÐû²¼£¬´ÓLinux
2.6.33°æ±¾¿ªÊ¼£¬GoogleÖÇÄÜÊÖ»ú²Ù×÷ϵͳAndroidºËÐÄ´úÂ뽫±»É¾³ý¡£ºÜ¶àÈ˶ԴËÊ®·Ö¹Ø×¢£¬±Ï¾¹Google
AndroidÊܵ½Á˺ܺõÄÆÀ¼Û£¬×÷ΪLinuxµÄÒ»Ô±ÄÜ°ïÖú¿ªÔ´ÉçÇøʵÏÖ¸üºÃµÄ·¢Õ¹£¬¶Ô´Ë£¬Greg×òÈÕÔÚ¹Ù·½²©¿ÍÖÐ×÷³öÁ˽âÊÍ¡£
Greg±íʾ£¬×Ô¼ºÊ¹ÓõÄÊÖ»ú¾ÍÊÇÔËÐÐAndroidµÄG1 ......
Ê×ÏÈ£º´ò¿ªPCµçԴʱ£¬CPU×Ô¶¯½øÈëʵģʽ£¬²¢´ÓµØÖ·0xFFFF0¿ªÊ¼Ö´ÐдúÂ룬Õâ¸öµØַͨ³£ÊÇROM-BIOSÖеĵØÖ·¡£ÕâʱBIOS½øÐпª»ú×Լ죬²¢°´BIOSÖÐÉèÖúõIJÎÊý½øÐÐÆô¶¯É豸£¬½Ó×ÅÆô¶¯É豸ÉÏ°²×°µÄÒýµ¼³ÌÐòlilo»ògrub¿ªÊ¼Òýµ¼LINUX£¨Ò²¾ÍÊÇÆô¶¯É豸µÄµÚÒ»¸öÉÈÇø£©£¬Õâʱ£¬Linux²Å»ñµÃÆô¶¯È¨¡£
µ ......
vmware ÍøÂçÅäÖÃʵÀý¶þ windows host + linux guest
£¨yunqing£¨2005-03-24£©°´£ººÜ¶àÅóÓÑÎʵ½ping²»Í¨hostµÄÇé¿ö£¬Çë¼ì²éÒ»ÏÂhostÀïµÄ·À»ðǽÉèÖ㬶àÊýµÄwindows xp sp2ϵķÀ»ðǽ¶¼ÉèÖóɲ»ÏìÓ¦£©
Ç°ÑÔ£ºÇ°¼¸ÌìдÁËÒ»¸övmwareµÄÅäÖõÄÒ»¸ö°¸Àý£¬Ö÷Òª¹ØÓÚlinux host+win ......
ssh
¹¦ÄÜ£º
Ô¶³ÌµÇ½
Ó÷¨£º
ssh user@hotname
scp
¹¦ÄÜ£º
Ô¶³Ì¿½±´
Ó÷¨£º
ssh [-r]
local_user@local_ip:localfile remote_user@remote_ip:remotefile
²ÎÊý£º
-r ¿½±´ÍêÕûÎļþ¼Ð¼°Îļþ
ldconfig
¹¦ÄÜ£º
¶¯Ì¬Á´½Ó¿â¹ÜÀí£¬Ö÷ÒªÊÇÔÚĬÈÏËÑѰĿ¼(/libºÍ/usr/lib)ÒÔ¼°¶¯Ì¬¿âÅäÖÃÎļþ/etc/ld.so.c ......