Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1999 - 2000
//
// File: dmpfile.h
//
//--------------------------------------------------------------------------
// DmpFile.h: interface for the CDmpFile class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DMPFILE_H__8BCD59C6_0CEA_11D3_84F0_000000000000__INCLUDED_)
#define AFX_DMPFILE_H__8BCD59C6_0CEA_11D3_84F0_000000000000__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef NO_STRICT
#ifndef STRICT
#define STRICT 1
#endif
#endif /* NO_STRICT */
#include <windows.h>
#include <tchar.h>
#include "globals.h"
// Forward Declarations
class CProcessInfo; class CModules; class CModuleInfoCache; class CFileData;
// Let's implement the DebugOutputCallback for the DBGENG... it'll be cool to have the debugger
// spit out info to us when it is running...
class OutputCallbacks : public IDebugOutputCallbacks { // IUnknown.
STDMETHOD(QueryInterface)( THIS_ IN REFIID InterfaceId, OUT PVOID* Interface ); STDMETHOD_(ULONG, AddRef)( THIS ); STDMETHOD_(ULONG, Release)( THIS );
// IDebugOutputCallbacks.
// This method is only called if the supplied mask
// is allowed by the clients output control.
// The return value is ignored.
STDMETHOD(Output)( THIS_ IN ULONG Mask, IN PCSTR Text ); };
class CDmpFile { public: CDmpFile(); virtual ~CDmpFile(); bool Initialize(CFileData * lpOutputFile); bool CollectData(CProcessInfo ** lplpProcessInfo, CModules ** lplpModules, CModuleInfoCache * lpModuleInfoCache);
inline bool IsUserDmpFile() { return (m_DumpClass == DEBUG_CLASS_USER_WINDOWS); };
IDebugSymbols * m_pIDebugSymbols; IDebugDataSpaces * m_pIDebugDataSpaces;
protected: bool m_fDmpInitialized; CFileData * m_lpOutputFile;
LPSTR m_szDmpFilePath; LPSTR m_szSymbolPath;
IDebugClient * m_pIDebugClient; IDebugControl * m_pIDebugControl; ULONG m_DumpClass; ULONG m_DumpClassQualifier;
// LPTSTR EnumerateModulesFromDump(CModuleInfoCache * lpModuleInfoCache, CFileData * lpInputFile, CFileData * lpOutputFile);
bool EumerateModulesFromDmp(CModuleInfoCache * lpModuleInfoCache, CProcessInfo * lpProcessInfo, CModules * lpModules); };
#endif // !defined(AFX_DMPFILE_H__8BCD59C6_0CEA_11D3_84F0_000000000000__INCLUDED_)
|