Files
Sun1602/Tools/CrashInfomationReport/CrashReport/BaseProcess.h
T
2022-10-26 12:25:11 +08:00

65 lines
1.6 KiB
C++

#pragma once
////////////////////////////////////////////////////////////////////////////////////////////
/*
// [8/10/2012 sensr7086] 모든 파일을 읽기(Map,Dmp,PDB)를 처리하는 최상위 Process클래스
*/
///////////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <Windows.h>
#include <vector>
#include <imagehlp.h>
struct sExceptionInfomation
{
TCHAR ExceptionFuntionName[256];
TCHAR ExceptionFileName[256];
UINT FileSourceLine;
bool HeaderFile;
sExceptionInfomation() :
FileSourceLine(0),
HeaderFile(false)
{
memset(ExceptionFileName,0,sizeof(TCHAR)*256);
memset(ExceptionFileName,0,sizeof(TCHAR)*256);
}
void OnInit()
{
FileSourceLine = 0;
HeaderFile = false;
memset(ExceptionFuntionName,0,sizeof(TCHAR)*256);
memset(ExceptionFileName,0,sizeof(TCHAR)*256);
}
};
//심볼 프로세서
class CBaseProcess
{
public:
enum eSYMBOLTYPE
{
eSYMBOLTYPE_NONE = 0,
eSYMBOLTYPE_MAP,
eSYMBOLTYPE_PDB,
};
public:
CBaseProcess(void);
virtual ~CBaseProcess(void);
public:
virtual void OnInitation() = 0;
virtual bool LoadFile(const TCHAR* SymbolName) = 0;
virtual void Clean() = 0;
virtual bool OnSearch(DWORD ExceptionAddr , sExceptionInfomation& ExceptionInfo ) = 0;
virtual bool OnSearch(const char* ExceptionAddr,sExceptionInfomation& ExceptionInfo ) = 0;
public:
DWORD GetHexValue(const char* Value);
int GetHexMulti(int Value);
int GetHexConvertor(char charset);
};