55 lines
1.5 KiB
C++
55 lines
1.5 KiB
C++
#pragma once
|
|
#include "BaseProcess.h"
|
|
|
|
class CPDBProcess : public CBaseProcess
|
|
{
|
|
public:
|
|
enum eFUNDTY
|
|
{
|
|
eLUFAILED = 0x0 ,
|
|
eLUMOD = 0x1 ,
|
|
eLUSYM = 0x2 ,
|
|
eLULINE = 0x4
|
|
};
|
|
|
|
private:
|
|
DWORD dwLoadAddress_;
|
|
DWORD dwCharacteristics_;
|
|
|
|
HANDLE HandlePdb_;
|
|
|
|
LOADED_IMAGE LoadImageFile_;
|
|
IMAGEHLP_MODULE64 ImageModuleInfo_;
|
|
|
|
char pdbprocess_File_Name_[256];
|
|
|
|
CString m_szSearchPath;
|
|
CString FullFileName_;
|
|
|
|
public:
|
|
CPDBProcess(void);
|
|
virtual ~CPDBProcess(void);
|
|
|
|
public:
|
|
bool LoadImageFile(const TCHAR* ImageFile);
|
|
int AddressInfo(DWORD dwAddress,
|
|
CString& strModule,
|
|
IMAGEHLP_SYMBOL& cImageSymbol,
|
|
DWORD dwFnDispl,
|
|
IMAGEHLP_LINE& cImageLine,
|
|
DWORD dwSrcDispl,sExceptionInfomation& ExceptionInfo );
|
|
|
|
public:
|
|
virtual void OnInitation();
|
|
virtual bool LoadFile(const TCHAR* SymbolName);
|
|
virtual void Clean();
|
|
virtual bool OnSearch(DWORD ExceptionAddr , sExceptionInfomation& ExceptionInfo );
|
|
virtual bool OnSearch(const char* ExceptionAddr,sExceptionInfomation& ExceptionInfo);
|
|
virtual bool StackWalker(void* DumpProcess,std::vector<CString> stackName);
|
|
|
|
public:
|
|
BOOL GetModules ( LPCTSTR pModuleName, CMapStringToPtr& ModuleList );
|
|
BOOL SearchForModule ( CString& fullpath ) ;
|
|
void BuildSearchPathString ( void ) ;
|
|
};
|