diff --git a/src/BaseException.cpp b/src/BaseException.cpp index 31d8684006..0bc5f71212 100644 --- a/src/BaseException.cpp +++ b/src/BaseException.cpp @@ -7,6 +7,7 @@ #include #include #include +#include static std::string g_log_folder; static std::atomic g_crash_log_count = 0; @@ -104,127 +105,127 @@ void CBaseException::ShowExceptionResoult(DWORD dwExceptionCode) { case EXCEPTION_ACCESS_VIOLATION: { - //OutputString(_T("ACCESS_VIOLATION(%s)\r\n"), _T("¶Áд·Ç·¨ÄÚ´æ")); + //OutputString(_T("ACCESS_VIOLATION(%s)\r\n"), _T("��д�Ƿ��ڴ�")); OutputString(_T("ACCESS_VIOLATION\r\n")); } return ; case EXCEPTION_DATATYPE_MISALIGNMENT: { - //OutputString(_T("DATATYPE_MISALIGNMENT(%s)\r\n"), _T("Ïß³ÌÊÓͼÔÚ²»Ö§³Ö¶ÔÆëµÄÓ²¼þÉ϶Áдδ¶ÔÆëµÄÊý¾Ý")); + //OutputString(_T("DATATYPE_MISALIGNMENT(%s)\r\n"), _T("�߳���ͼ�ڲ�֧�ֶ����Ӳ���϶�дδ���������")); OutputString(_T("DATATYPE_MISALIGNMENT\r\n")); } return ; case EXCEPTION_BREAKPOINT: { - //OutputString(_T("BREAKPOINT(%s)\r\n"), _T("Óöµ½Ò»¸ö¶Ïµã")); + //OutputString(_T("BREAKPOINT(%s)\r\n"), _T("����һ���ϵ�")); OutputString(_T("BREAKPOINT\r\n")); } return ; case EXCEPTION_SINGLE_STEP: { - //OutputString(_T("SINGLE_STEP(%s)\r\n"), _T("µ¥²½")); //Ò»°ãÊÇ·¢ÉúÔÚµ÷ÊÔʼþÖÐ + //OutputString(_T("SINGLE_STEP(%s)\r\n"), _T("����")); //һ���Ƿ����ڵ����¼��� OutputString(_T("SINGLE_STEP\r\n")); } return ; case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: { - //OutputString(_T("ARRAY_BOUNDS_EXCEEDED(%s)\r\n"), _T("Êý×é·ÃÎÊÔ½½ç")); + //OutputString(_T("ARRAY_BOUNDS_EXCEEDED(%s)\r\n"), _T("�������Խ��")); OutputString(_T("ARRAY_BOUNDS_EXCEEDED\r\n")); } return ; case EXCEPTION_FLT_DENORMAL_OPERAND: { - //OutputString(_T("FLT_DENORMAL_OPERAND(%s)\r\n"), _T("¸¡µã²Ù×÷µÄÒ»¸ö²Ù×÷Êý²»Õý¹æ£¬¸ø¶¨µÄ¸¡µãÊýÎÞ·¨±íʾ")); //²Ù×÷ÊýµÄÎÊÌâ + //OutputString(_T("FLT_DENORMAL_OPERAND(%s)\r\n"), _T("���������һ�������������棬�����ĸ������޷���ʾ")); //������������ OutputString(_T("FLT_DENORMAL_OPERAND\r\n")); } return ; case EXCEPTION_FLT_DIVIDE_BY_ZERO: { - //OutputString(_T("FLT_DIVIDE_BY_ZERO(%s)\r\n"), _T("¸¡µãÊý³ý0²Ù×÷")); + //OutputString(_T("FLT_DIVIDE_BY_ZERO(%s)\r\n"), _T("��������0����")); OutputString(_T("FLT_DIVIDE_BY_ZERO\r\n")); } return ; case EXCEPTION_FLT_INEXACT_RESULT: { - //OutputString(_T("FLT_INEXACT_RESULT(%s)\r\n"), _T("¸¡µãÊý²Ù×÷µÄ½á¹ûÎÞ·¨±íʾ")); //ÎÞ·¨±íʾһ°ãÊÇÊý¾Ý̫С£¬³¬¹ý¸¡µãÊý±íʾµÄ·¶Î§, ¼ÆËãÖ®ºó²úÉúµÄ½á¹ûÒì³£ + //OutputString(_T("FLT_INEXACT_RESULT(%s)\r\n"), _T("�����������Ľ���޷���ʾ")); //�޷���ʾһ��������̫С��������������ʾ�ķ�Χ, ����֮������Ľ���쳣 OutputString(_T("FLT_INEXACT_RESULT\r\n")); } return ; case EXCEPTION_FLT_INVALID_OPERATION: { - //OutputString(_T("FLT_INVALID_OPERATION(%s)\r\n"), _T("ÆäËû¸¡µãÊýÒì³£")); + //OutputString(_T("FLT_INVALID_OPERATION(%s)\r\n"), _T("�����������쳣")); OutputString(_T("FLT_INVALID_OPERATION\r\n")); } return ; case EXCEPTION_FLT_OVERFLOW: { - //OutputString(_T("FLT_OVERFLOW(%s)\r\n"), _T("¸¡µã²Ù×÷µÄÖ¸Êý³¬¹ýÁËÏàÓ¦ÀàÐ͵Ä×î´óÖµ")); + //OutputString(_T("FLT_OVERFLOW(%s)\r\n"), _T("���������ָ����������Ӧ���͵����ֵ")); OutputString(_T("FLT_OVERFLOW\r\n")); } return ; case EXCEPTION_FLT_STACK_CHECK: { - //OutputString(_T("STACK_CHECK(%s)\r\n"), _T("Õ»Ô½½ç»òÕßÕ»ÏòÏÂÒç³ö")); + //OutputString(_T("STACK_CHECK(%s)\r\n"), _T("ջԽ�����ջ�������")); OutputString(_T("STACK_CHECK\r\n")); } return ; case EXCEPTION_INT_DIVIDE_BY_ZERO: { - //OutputString(_T("INT_DIVIDE_BY_ZERO(%s)\r\n"), _T("ÕûÊý³ý0Òì³£")); + //OutputString(_T("INT_DIVIDE_BY_ZERO(%s)\r\n"), _T("������0�쳣")); OutputString(_T("INT_DIVIDE_BY_ZERO\r\n")); } return ; case EXCEPTION_INVALID_HANDLE: { - //OutputString(_T("INVALID_HANDLE(%s)\r\n"), _T("¾ä±úÎÞЧ")); + //OutputString(_T("INVALID_HANDLE(%s)\r\n"), _T("�����Ч")); OutputString(_T("INVALID_HANDLE\r\n")); } return ; case EXCEPTION_PRIV_INSTRUCTION: { - //OutputString(_T("PRIV_INSTRUCTION(%s)\r\n"), _T("Ïß³ÌÊÔͼִÐе±Ç°»úÆ÷ģʽ²»Ö§³ÖµÄÖ¸Áî")); + //OutputString(_T("PRIV_INSTRUCTION(%s)\r\n"), _T("�߳���ͼִ�е�ǰ����ģʽ��֧�ֵ�ָ��")); OutputString(_T("PRIV_INSTRUCTION\r\n")); } return ; case EXCEPTION_IN_PAGE_ERROR: { - //OutputString(_T("IN_PAGE_ERROR(%s)\r\n"), _T("Ïß³ÌÊÓͼ·ÃÎÊδ¼ÓÔØµÄÐéÄâÄÚ´æÒ³»òÕß²»ÄܼÓÔØµÄÐéÄâÄÚ´æÒ³")); + //OutputString(_T("IN_PAGE_ERROR(%s)\r\n"), _T("�߳���ͼ����δ���ص������ڴ�ҳ���߲��ܼ��ص������ڴ�ҳ")); OutputString(_T("IN_PAGE_ERROR\r\n")); } return ; case EXCEPTION_ILLEGAL_INSTRUCTION: { - //OutputString(_T("ILLEGAL_INSTRUCTION(%s)\r\n"), _T("Ïß³ÌÊÓͼִÐÐÎÞЧָÁî")); + //OutputString(_T("ILLEGAL_INSTRUCTION(%s)\r\n"), _T("�߳���ͼִ����Чָ��")); OutputString(_T("ILLEGAL_INSTRUCTION\r\n")); } return ; case EXCEPTION_NONCONTINUABLE_EXCEPTION: { - //OutputString(_T("NONCONTINUABLE_EXCEPTION(%s)\r\n"), _T("Ïß³ÌÊÔͼÔÚÒ»¸ö²»¿É¼ÌÐøÖ´ÐеÄÒì³£·¢Éúºó¼ÌÐøÖ´ÐÐ")); + //OutputString(_T("NONCONTINUABLE_EXCEPTION(%s)\r\n"), _T("�߳���ͼ��һ�����ɼ���ִ�е��쳣���������ִ��")); OutputString(_T("NONCONTINUABLE_EXCEPTION\r\n")); } return ; case EXCEPTION_STACK_OVERFLOW: { - //OutputString(_T("STACK_OVERFLOW(%s)\r\n"), _T("Õ»Òç³ö")); + //OutputString(_T("STACK_OVERFLOW(%s)\r\n"), _T("ջ���")); OutputString(_T("STACK_OVERFLOW\r\n")); } return ; case EXCEPTION_INVALID_DISPOSITION: { - //OutputString(_T("INVALID_DISPOSITION(%s)\r\n"), _T("Òì³£´¦Àí³ÌÐò¸øÒì³£µ÷¶ÈÆ÷·µ»ØÁËÒ»¸öÎÞЧÅäÖÃ")); //ʹÓø߼¶ÓïÑÔ±àдµÄ³ÌÐòÓÀÔ¶²»»áÓöµ½Õâ¸öÒì³£ + //OutputString(_T("INVALID_DISPOSITION(%s)\r\n"), _T("�쳣���������쳣������������һ����Ч����")); //ʹ�ø߼����Ա�д�ij�����Զ������������쳣 OutputString(_T("INVALID_DISPOSITION\r\n")); } return ; case EXCEPTION_FLT_UNDERFLOW: { - //OutputString(_T("FLT_UNDERFLOW(%s)\r\n"), _T("¸¡µãÊý²Ù×÷µÄÖ¸ÊýСÓÚÏàÓ¦ÀàÐ͵Ä×îСֵ")); + //OutputString(_T("FLT_UNDERFLOW(%s)\r\n"), _T("������������ָ��С����Ӧ���͵���Сֵ")); OutputString(_T("FLT_UNDERFLOW\r\n")); } return ; case EXCEPTION_INT_OVERFLOW: { - //OutputString(_T("INT_OVERFLOW(%s)\r\n"), _T("ÕûÊý²Ù×÷Ô½½ç")); + //OutputString(_T("INT_OVERFLOW(%s)\r\n"), _T("��������Խ��")); OutputString(_T("INT_OVERFLOW\r\n")); } return ; @@ -291,7 +292,7 @@ BOOL CBaseException::GetLogicalAddress( DWORD rva = (DWORD)addr - hMod; - //¼ÆË㵱ǰµØÖ·ÔÚµÚ¼¸¸ö½Ú + //���㵱ǰ��ַ�ڵڼ����� for (unsigned i = 0; i < pNtHdr->FileHeader.NumberOfSections; i++, pSection++ ) { DWORD sectionStart = pSection->VirtualAddress;