2014-03-14 14:13:41 -04:00
|
|
|
// Copyright 1998-2014 Epic Games, Inc. All Rights Reserved.
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#undef PLATFORM_SUPPORTS_STACK_SYMBOLS
|
|
|
|
|
#define PLATFORM_SUPPORTS_STACK_SYMBOLS 1
|
|
|
|
|
|
2014-07-14 06:53:12 -04:00
|
|
|
class FCrashInfo;
|
|
|
|
|
class FCrashModuleInfo;
|
|
|
|
|
|
2014-03-14 14:13:41 -04:00
|
|
|
/**
|
2014-07-14 06:53:12 -04:00
|
|
|
* Windows implementation of stack walking using the COM interface IDebugClient5.
|
|
|
|
|
*/
|
|
|
|
|
struct FWindowsPlatformStackWalkExt
|
2014-03-14 14:13:41 -04:00
|
|
|
{
|
2014-07-14 06:53:12 -04:00
|
|
|
/** Default constructor. */
|
|
|
|
|
FWindowsPlatformStackWalkExt( FCrashInfo& InCrashInfo );
|
2014-03-14 14:13:41 -04:00
|
|
|
|
2014-07-14 06:53:12 -04:00
|
|
|
/** Destructor. */
|
|
|
|
|
~FWindowsPlatformStackWalkExt();
|
|
|
|
|
|
|
|
|
|
bool InitStackWalking();
|
|
|
|
|
void ShutdownStackWalking();
|
|
|
|
|
|
|
|
|
|
void GetExeFileVersionAndModuleList( FCrashModuleInfo& out_ExeFileVersion );
|
|
|
|
|
void InitSymbols();
|
|
|
|
|
bool OpenDumpFile( const FString& DumpFileName );
|
|
|
|
|
void SetSymbolPathsFromModules();
|
|
|
|
|
void GetModuleInfoDetailed();
|
|
|
|
|
void GetSystemInfo();
|
|
|
|
|
void GetThreadInfo();
|
|
|
|
|
void GetExceptionInfo();
|
|
|
|
|
bool GetCallstacks();
|
|
|
|
|
|
|
|
|
|
bool IsOffsetWithinModules( uint64 Offset );
|
2014-03-14 14:13:41 -04:00
|
|
|
|
|
|
|
|
static FString ExtractRelativePath( const TCHAR* BaseName, TCHAR* FullName );
|
|
|
|
|
|
2014-07-14 06:53:12 -04:00
|
|
|
protected:
|
|
|
|
|
/** Reference to the crash info. */
|
|
|
|
|
FCrashInfo& CrashInfo;
|
|
|
|
|
};
|