65 lines
1.6 KiB
C++
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);
|
|
};
|