42#ifndef MEMPRO_MEMPRO_H_INCLUDED
43#define MEMPRO_MEMPRO_H_INCLUDED
47#if !defined(__UNREAL__)
48 #define MEMPRO_ENABLED 1
49#elif !defined(MEMPRO_ENABLED)
50 #define MEMPRO_ENABLED 0
55#if defined(__UNREAL__) && MEMPRO_ENABLED && !defined(WITH_ENGINE)
57 #define MEMPRO_ENABLED 0
61#if defined(__UNREAL__)
71#if defined(MEMPRO_PLATFORM_XBOXONE)
72#elif defined(MEMPRO_PLATFORM_PS4)
73#elif defined(MEMPRO_PLATFORM_EXTENSION)
74#elif defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) || defined(__WIN32__)
76 #if defined(_XBOX_ONE)
77 #define MEMPRO_PLATFORM_XBOXONE
79 #define MEMPRO_PLATFORM_XBOX360
81 #define MEMPRO_PLATFORM_WIN
83#elif defined(__APPLE__)
84 #define MEMPRO_PLATFORM_APPLE
86 #define MEMPRO_PLATFORM_UNIX
92 #ifndef WAIT_FOR_CONNECT
93 #define WAIT_FOR_CONNECT false
95 #define MEMPRO_TRACK_ALLOC(p, size) MemPro::TrackAlloc(p, size, WAIT_FOR_CONNECT)
96 #define MEMPRO_TRACK_FREE(p) MemPro::TrackFree(p, WAIT_FOR_CONNECT)
98 #define MEMPRO_TRACK_ALLOC(p, size) ((void)0)
99 #define MEMPRO_TRACK_FREE(p) ((void)0)
110#define MEMPRO_INIT_DELAY 100
114#define MEMPRO_CONNECT_TIMEOUT 500
124#if defined(__UNREAL__) && !defined(MEMPRO_WRITE_DUMP)
125 #define MEMPRO_WRITE_DUMP
129#if defined(MEMPRO_WRITE_DUMP) && defined(DISALLOW_WRITE_DUMP)
134#define MEMPRO_ASSERT(b) if(!(b)) Platform::DebugBreak()
207#ifndef MEMPRO_WRITE_DUMP
213 class MemProGLobalScope
233#if defined(MEMPRO_PLATFORM_WIN)
235 #define MEMPRO_WIN_BASED_PLATFORM
236 #define MEMPRO_INTERLOCKED_ALIGN __declspec(align(8))
237 #define MEMPRO_INSTRUCTION_BARRIER
238 #define MEMPRO_ENABLE_WARNING_PRAGMAS
239 #define MEMPRO_PUSH_WARNING_DISABLE __pragma(warning(push))
240 #define MEMPRO_DISABLE_WARNING(w) __pragma(warning(disable : w))
241 #define MEMPRO_POP_WARNING_DISABLE __pragma(warning(pop))
242 #define MEMPRO_FORCEINLINE FORCEINLINE
243 #define ENUMERATE_ALL_MODULES
244 #define THREAD_LOCAL_STORAGE __declspec(thread)
245 #define MEMPRO_PORT "27016"
246 #define STACK_TRACE_SIZE 128
247 #define MEMPRO_PAGE_SIZE 4096
249 #define MEMPRO_ALIGN_SUFFIX(n)
251 #if defined(_WIN64) || defined(__LP64__) || defined(__x86_64__) || defined(__ppc64__)
256 #define MEMPRO_MAX_ADDRESS ULLONG_MAX
258 #define MEMPRO_MAX_ADDRESS UINT_MAX
265 #ifndef MEMPRO_WRITE_DUMP
266 #if defined(UNICODE) && !defined(_UNICODE)
267 #error for unicode builds please define both UNICODE and _UNICODE. See the FAQ for more details.
269 #if defined(AF_IPX) && !defined(_WINSOCK2API_)
270 #error winsock already defined. Please include winsock2.h before including windows.h or use WIN32_LEAN_AND_MEAN. See the FAQ for more info.
273 #pragma warning(push)
274 #pragma warning(disable : 4668)
275 #include <winsock2.h>
278 #include <ws2tcpip.h>
280 #define _WIN32_WINNT 0x0501
284 #define WINDOWS_LEAN_AND_MEAN
288 #ifdef ENUMERATE_ALL_MODULES
289 #pragma warning(push)
290 #pragma warning(disable : 4091)
293 #pragma comment(lib, "Dbghelp.lib")
301#elif defined(MEMPRO_PLATFORM_EXTENSION) && defined(__UNREAL__)
303 #include COMPILED_PLATFORM_HEADER_WITH_PREFIX(MemPro,MemProExt.h)
307#elif defined(MEMPRO_PLATFORM_XBOXONE)
310 #include "MemPro/MemProXboxOne.h"
312 #include "MemProXboxOne.hpp"
315#elif defined(MEMPRO_PLATFORM_XBOX360)
317 #include "MemProXbox360.hpp"
319#elif defined(MEMPRO_PLATFORM_PS4)
322 #include "MemPro/MemProPS4.h"
324 #include "MemProPS4.hpp"
327#elif defined(MEMPRO_PLATFORM_UNIX)
329 #define MEMPRO_UNIX_BASED_PLATFORM
330 #define MEMPRO_INTERLOCKED_ALIGN
331 #define MEMPRO_INSTRUCTION_BARRIER
332 #define MEMPRO_PUSH_WARNING_DISABLE
333 #define MEMPRO_DISABLE_WARNING(w)
334 #define MEMPRO_POP_WARNING_DISABLE
335 #define MEMPRO_FORCEINLINE inline
336 #define ENUMERATE_ALL_MODULES
337 #define THREAD_LOCAL_STORAGE __thread
338 #define MEMPRO_PORT "27016"
339 #define STACK_TRACE_SIZE 128
340 #define MEMPRO_ALIGN_SUFFIX(n) __attribute__ ((aligned(n)))
342 #if defined(__LP64__) || defined(__x86_64__) || defined(__ppc64__)
346#elif defined(MEMPRO_PLATFORM_APPLE)
348 #define MEMPRO_UNIX_BASED_PLATFORM
349 #define MEMPRO_INTERLOCKED_ALIGN
350 #define MEMPRO_INSTRUCTION_BARRIER
351 #define MEMPRO_PUSH_WARNING_DISABLE
352 #define MEMPRO_DISABLE_WARNING(w)
353 #define MEMPRO_POP_WARNING_DISABLE
354 #define MEMPRO_FORCEINLINE inline
355 #define ENUMERATE_ALL_MODULES
356 #define THREAD_LOCAL_STORAGE __thread
357 #define MEMPRO_PORT "27016"
358 #define STACK_TRACE_SIZE 128
359 #define MEMPRO_ALIGN_SUFFIX(n) __attribute__ ((aligned(n)))
361 #if defined(__LP64__) || defined(__x86_64__) || defined(__ppc64__)
365 #ifdef OVERRIDE_NEW_DELETE
369 void*
operator new(std::size_t size)
throw(std::bad_alloc)
371 void* p = malloc(size);
376 void*
operator new(std::size_t size,
const std::nothrow_t&)
throw()
378 void* p = malloc(size);
383 void operator delete(
void* p)
throw()
389 void operator delete(
void* p,
const std::nothrow_t&)
throw()
395 void*
operator new[](std::size_t size)
throw(std::bad_alloc)
397 void* p = malloc(size);
402 void*
operator new[](std::size_t size,
const std::nothrow_t&)
throw()
404 void* p = malloc(size);
409 void operator delete[](
void* p)
throw()
415 void operator delete[](
void* p,
const std::nothrow_t&)
throw()
444#ifndef MEMPRO_WRITE_DUMP
560#ifdef MEMPRO_WRITE_DUMP
570 namespace GenericPlatform
580#ifndef MEMPRO_WRITE_DUMP
676 #ifdef MEMPRO_WRITE_DUMP
686#ifdef OVERRIDE_NEW_DELETE
688 #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) || defined(__WIN32__) || defined(__WINDOWS__)
691 void*
operator new(
size_t size)
693 void* p = malloc(size);
698 void operator delete(
void* p)
704 void*
operator new[](
size_t size)
706 void* p = malloc(size);
711 void operator delete[](
void* p)
721#ifdef OVERRIDE_MALLOC_FREE
723 #if defined(_WIN32) || defined(_WIN64) || defined(WIN32) || defined(WIN64) || defined(__WIN32__) || defined(__WINDOWS__)
748 void *malloc(
int size)
754 void *p = (*ptr)(size);
759 void *realloc(
void *p,
int size)
762 void * (*ptr)(
void *,
int);
763 void *
handle = (
void*) -1;
766 void*
p_new = (*ptr)(p, size);
OO_U32 reserved[4]
Definition oodle2.h:294
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define NULL
Definition oodle2base.h:134
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define MEMPRO_TRACK_ALLOC(p, size)
Definition MemPro.h:95
#define MEMPRO_TRACK_FREE(p)
Definition MemPro.h:96
const bool
Definition NetworkReplayStreaming.h:178
char * dest
Definition lz4.h:709
__declspec(dllimport) int __stdcall IsDebuggerPresent()
void(* EnumerateLoadedModulesCallbackFunction)(int64, const char *, void *)
Definition MemPro.h:176
void TrackFree(void *p, bool wait_for_connect=false)
PageState
Definition MemPro.h:145
@ Invalid
Definition MemPro.h:146
@ Reserved
Definition MemPro.h:148
@ Free
Definition MemPro.h:147
@ Committed
Definition MemPro.h:149
void TakeSnapshot(bool send_memory=false)
void(* SendPageStateFunction)(void *, size_t, PageState, PageType, unsigned int, bool, int, void *)
Definition MemPro.h:173
void TrackAlloc(void *p, size_t size, bool wait_for_connect=false)
unsigned long long uint64
Definition MemPro.h:141
PageType
Definition MemPro.h:154
@ page_Mapped
Definition MemPro.h:157
@ page_Private
Definition MemPro.h:158
@ page_Unknown
Definition MemPro.h:155
@ page_Image
Definition MemPro.h:156
void Initialise(bool wait_for_connect=false)
int(* ThreadMain)(void *)
Definition MemPro.h:170
void SetPaused(bool paused)
long long int64
Definition MemPro.h:140
EPlatform
Definition MemPro.h:163
@ Platform_Windows
Definition MemPro.h:164
@ Platform_PS4
Definition MemPro.h:166
@ Platform_Unix
Definition MemPro.h:165
int
Definition TestServer.py:515