fix build error

This commit is contained in:
SoftFever
2023-03-09 01:05:22 +08:00
parent 013e77aa6b
commit 7a53dd60f2
+23 -22
View File
@@ -7,6 +7,7 @@
#include <boost/filesystem/operations.hpp> #include <boost/filesystem/operations.hpp>
#include <boost/log/trivial.hpp> #include <boost/log/trivial.hpp>
#include <boost/format.hpp> #include <boost/format.hpp>
#include <mutex>
static std::string g_log_folder; static std::string g_log_folder;
static std::atomic<int> g_crash_log_count = 0; static std::atomic<int> g_crash_log_count = 0;
@@ -104,127 +105,127 @@ void CBaseException::ShowExceptionResoult(DWORD dwExceptionCode)
{ {
case EXCEPTION_ACCESS_VIOLATION: 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")); OutputString(_T("ACCESS_VIOLATION\r\n"));
} }
return ; return ;
case EXCEPTION_DATATYPE_MISALIGNMENT: 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")); OutputString(_T("DATATYPE_MISALIGNMENT\r\n"));
} }
return ; return ;
case EXCEPTION_BREAKPOINT: case EXCEPTION_BREAKPOINT:
{ {
//OutputString(_T("BREAKPOINT(%s)\r\n"), _T("遇到一个断点")); //OutputString(_T("BREAKPOINT(%s)\r\n"), _T("����һ���ϵ�"));
OutputString(_T("BREAKPOINT\r\n")); OutputString(_T("BREAKPOINT\r\n"));
} }
return ; return ;
case EXCEPTION_SINGLE_STEP: 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")); OutputString(_T("SINGLE_STEP\r\n"));
} }
return ; return ;
case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: 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")); OutputString(_T("ARRAY_BOUNDS_EXCEEDED\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_DENORMAL_OPERAND: 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")); OutputString(_T("FLT_DENORMAL_OPERAND\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_DIVIDE_BY_ZERO: 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")); OutputString(_T("FLT_DIVIDE_BY_ZERO\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_INEXACT_RESULT: 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")); OutputString(_T("FLT_INEXACT_RESULT\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_INVALID_OPERATION: 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")); OutputString(_T("FLT_INVALID_OPERATION\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_OVERFLOW: 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")); OutputString(_T("FLT_OVERFLOW\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_STACK_CHECK: 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")); OutputString(_T("STACK_CHECK\r\n"));
} }
return ; return ;
case EXCEPTION_INT_DIVIDE_BY_ZERO: 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")); OutputString(_T("INT_DIVIDE_BY_ZERO\r\n"));
} }
return ; return ;
case EXCEPTION_INVALID_HANDLE: 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")); OutputString(_T("INVALID_HANDLE\r\n"));
} }
return ; return ;
case EXCEPTION_PRIV_INSTRUCTION: 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")); OutputString(_T("PRIV_INSTRUCTION\r\n"));
} }
return ; return ;
case EXCEPTION_IN_PAGE_ERROR: 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")); OutputString(_T("IN_PAGE_ERROR\r\n"));
} }
return ; return ;
case EXCEPTION_ILLEGAL_INSTRUCTION: 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")); OutputString(_T("ILLEGAL_INSTRUCTION\r\n"));
} }
return ; return ;
case EXCEPTION_NONCONTINUABLE_EXCEPTION: 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")); OutputString(_T("NONCONTINUABLE_EXCEPTION\r\n"));
} }
return ; return ;
case EXCEPTION_STACK_OVERFLOW: 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")); OutputString(_T("STACK_OVERFLOW\r\n"));
} }
return ; return ;
case EXCEPTION_INVALID_DISPOSITION: 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")); OutputString(_T("INVALID_DISPOSITION\r\n"));
} }
return ; return ;
case EXCEPTION_FLT_UNDERFLOW: 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")); OutputString(_T("FLT_UNDERFLOW\r\n"));
} }
return ; return ;
case EXCEPTION_INT_OVERFLOW: 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")); OutputString(_T("INT_OVERFLOW\r\n"));
} }
return ; return ;
@@ -291,7 +292,7 @@ BOOL CBaseException::GetLogicalAddress(
DWORD rva = (DWORD)addr - hMod; DWORD rva = (DWORD)addr - hMod;
//计算当前地址在第几个节 //���㵱ǰ��ַ�ڵڼ�����
for (unsigned i = 0; i < pNtHdr->FileHeader.NumberOfSections; i++, pSection++ ) for (unsigned i = 0; i < pNtHdr->FileHeader.NumberOfSections; i++, pSection++ )
{ {
DWORD sectionStart = pSection->VirtualAddress; DWORD sectionStart = pSection->VirtualAddress;