97 lines
1.5 KiB
C
97 lines
1.5 KiB
C
#ifndef _DUMP_H_
|
|
#define _DUMP_H_
|
|
|
|
//
|
|
// Constant declarations
|
|
//
|
|
#define DUMP_BUFFER_SIZE 200 * 1024
|
|
#define DUMP_LOG_NAME "Profiler.dump"
|
|
|
|
typedef enum _DUMPTYPES
|
|
{
|
|
ThreadStartId = 0,
|
|
ExeFlowId,
|
|
DllBaseInfoId,
|
|
MapInfoId,
|
|
ErrorInfoId,
|
|
} DUMPTYPES;
|
|
|
|
//
|
|
// Structure definitions
|
|
//
|
|
typedef struct _THREADSTART
|
|
{
|
|
DUMPTYPES dwType;
|
|
DWORD dwThreadId;
|
|
DWORD dwStartAddress;
|
|
} THREADSTART, *PTHREADSTART;
|
|
|
|
typedef struct _EXEFLOW
|
|
{
|
|
DUMPTYPES dwType;
|
|
DWORD dwThreadId;
|
|
DWORD dwAddress;
|
|
DWORD dwCallLevel;
|
|
} EXEFLOW, *PEXEFLOW;
|
|
|
|
typedef struct _DLLBASEINFO
|
|
{
|
|
DUMPTYPES dwType;
|
|
DWORD dwBase;
|
|
DWORD dwLength;
|
|
CHAR szDLLName[32];
|
|
} DLLBASEINFO, *PDLLBASEINFO;
|
|
|
|
typedef struct _MAPINFO
|
|
{
|
|
DUMPTYPES dwType;
|
|
DWORD dwAddress;
|
|
DWORD dwMaxMapLength;
|
|
} MAPINFO, *PMAPINFO;
|
|
|
|
typedef struct _ERRORINFO
|
|
{
|
|
DWORD dwType;
|
|
CHAR szMessage[MAX_PATH];
|
|
} ERRORINFO, *PERRORINFO;
|
|
|
|
//
|
|
// Function definitions
|
|
//
|
|
BOOL
|
|
InitializeDumpData(VOID);
|
|
|
|
BOOL
|
|
AddToDump(PBYTE pBuffer,
|
|
DWORD dwLength,
|
|
BOOL bFlushImmediate);
|
|
|
|
BOOL
|
|
FlushBuffer(VOID);
|
|
|
|
VOID
|
|
FlushForTermination(VOID);
|
|
|
|
BOOL
|
|
WriteThreadStart(DWORD dwThreadId,
|
|
DWORD dwStartAddress);
|
|
|
|
BOOL
|
|
WriteExeFlow(DWORD dwThreadId,
|
|
DWORD dwAddress,
|
|
DWORD dwCallLevel);
|
|
|
|
BOOL
|
|
WriteDllInfo(CHAR *szDLL,
|
|
DWORD dwBaseAddress,
|
|
DWORD dwLength);
|
|
|
|
BOOL
|
|
WriteMapInfo(DWORD dwAddress,
|
|
DWORD dwMaxMapLength);
|
|
|
|
BOOL
|
|
WriteError(CHAR *szMessage);
|
|
|
|
#endif //_DUMP_H_
|