vphysics_jolt/vphysics_jolt/vjolt_callstack.h

26 lines
635 B
C

#pragma once
#include "compat/better_winlite.h"
#ifdef _MSC_VER
#define VJOLT_RETURN_ADDRESS() _ReturnAddress()
#else
#define VJOLT_RETURN_ADDRESS() __builtin_return_address(0)
#endif
FORCEINLINE void GetCallingFunctionModulePath( void *pReturnAddress, char *pszModulePath, size_t len )
{
#ifdef _WIN32
MEMORY_BASIC_INFORMATION mbi;
if ( ::VirtualQuery( pReturnAddress, &mbi, sizeof(mbi)) ) {
HMODULE module = reinterpret_cast< HMODULE >( mbi.AllocationBase );
::GetModuleFileNameA( module, pszModulePath, DWORD( len ) );
return;
}
#else
V_strncpy( pszModulePath, "Unknown", len);
#endif
}