Closed Dids closed 8 years ago
It seems like an array issue (out of bounds etc)?
Generating report for minidump
Application version 4.10.0
... built from changelist 2758231
OS version 10.0.0.10586
Running 8 x64 processors
Exception was "Access violation - code c0000005 (first/second chance not available)"
Source context from "engine/source/runtime/core/public/containers/array.h"
<SOURCE START>
996 /**
997 * Finds an item by predicate.
998 *
999 * @param Pred The predicate to match.
1000 *
1001 * @returns Index to the first matching element, or INDEX_NONE if none is
1002 * found.
1003 */
1004 template <typename Predicate>
1005 int32 IndexOfByPredicate(Predicate Pred) const
1006 {
1007 const ElementType* RESTRICT Start = GetData();
1008 for (const ElementType* RESTRICT Data = Start, *RESTRICT DataEnd = Start + ArrayNum; Data != DataEnd; ++Data)
1009 {
1010 ***** if (Pred(*Data))
1011 {
1012 return static_cast<int32>(Data - Start);
1013 }
1014 }
1015 return INDEX_NONE;
1016 }
1017
1018 /**
1019 * Finds an item by key (assuming the ElementType overloads operator== for
1020 * the comparison).
1021 *
1022 * @param Key The key to search by.
1023 *
1024 * @returns Pointer to the first matching element, or nullptr if none is found.
1025 */
<SOURCE END>
<CALLSTACK START>
UE4Editor_MasterServer!TArray<TScriptDelegate<FWeakObjectPtr>,FDefaultAllocator>::IndexOfByPredicate<<lambda_4db425c7b9b27a04c1485d21013dafcd> >() [c:\program files (x86)\epic games\4.10\engine\source\runtime\core\public\containers\array.h:1011]
UE4Editor_MasterServer!TBaseDynamicMulticastDelegate<FWeakObjectPtr,void,enum EHttpResponse,float>::__Internal_RemoveDynamic<UMasterServerFunctions>() [c:\program files (x86)\epic games\4.10\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:1057]
UE4Editor_MasterServer!UMasterServerFunctions::RegisterServer() [c:\users\didan\documents\unreal projects\hideordie\plugins\masterserver\source\masterserver\private\masterserverfunctions.cpp:372]
UE4Editor_HideOrDie!UHODGameInstance::StartHostingGame() [c:\users\didan\documents\unreal projects\hideordie\source\hideordie\hodgameinstance.cpp:88]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:484]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1755]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:608]
UE4Editor_CoreUObject!UObject::execVirtualFunction() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1842]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1053]
UE4Editor_Engine!AActor::ProcessEvent() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:580]
UE4Editor_Engine!FInputActionHandlerDynamicSignature::Execute() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:93]
UE4Editor_Engine!FInputActionUnifiedDelegate::Execute() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:189]
UE4Editor_Engine!UPlayerInput::ProcessInputStack() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\userinterface\playerinput.cpp:1117]
UE4Editor_Engine!APlayerController::ProcessPlayerInput() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:2281]
UE4Editor_Engine!APlayerController::TickPlayerInput() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3816]
UE4Editor_Engine!APlayerController::PlayerTick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:1950]
UE4Editor_Engine!APlayerController::TickActor() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3892]
UE4Editor_Engine!FActorTickFunction::ExecuteTick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:107]
UE4Editor_Engine!FTickFunctionTask::DoTask() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\ticktaskmanager.cpp:141]
UE4Editor_Engine!TGraphTask<FTickFunctionTask>::ExecuteTask() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\public\async\taskgraphinterfaces.h:779]
UE4Editor_Core!FTaskThread::ProcessTasks() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\async\taskgraph.cpp:539]
UE4Editor_Core!FTaskThread::ProcessTasksUntilQuit() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\async\taskgraph.cpp:340]
UE4Editor_Core!FTaskGraphImplementation::WaitUntilTasksComplete() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\async\taskgraph.cpp:1140]
UE4Editor_Engine!FTaskGraphInterface::WaitUntilTaskCompletes() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\public\async\taskgraphinterfaces.h:212]
UE4Editor_Engine!FTickTaskSequencer::ReleaseTickGroup() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\ticktaskmanager.cpp:285]
UE4Editor_Engine!FTickTaskManager::RunTickGroup() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\ticktaskmanager.cpp:1206]
UE4Editor_Engine!UWorld::RunTickGroup() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\leveltick.cpp:701]
UE4Editor_Engine!UWorld::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\engine\private\leveltick.cpp:1150]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\editor\unrealed\private\editorengine.cpp:1347]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\editor\unrealed\private\unrealedengine.cpp:361]
UE4Editor!FEngineLoop::Tick() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launchengineloop.cpp:2427]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll
<CALLSTACK END>
Hey, does it appear to do it the second time you attempt to transmit a request? Ie. First time succeeds and second time fails. I'll take a look at this tommorw and see if I can replicate it (inter ally I have refined this and longer use it as a plugin so it doesn't get tested much on new UE4 versions)
Nope, sadly it appears to happen the first time a function on MasterServer is called.
I did just try debugging the entire project, and it's throwing a breakpoint on the following (internal) line:
ensureMsgf(this->IsBound(), TEXT("Unable to bind delegate to '%s' (function might not be marked as a UFUNCTION)"), InMacroFunctionName);
I see that it's trying to call MyGameInstance::OnServerRegistered, then throwing the previous line.
EDIT: Nevermind that, that might actually just be a bug in UE4/VS debugging.
After stepping over the delegate breakpoints, I got to the meat of the issue.
It would seem like MasterServerFunctions is calling TransmitRequest, and there's a TArray allocation issue, possibly a pointer gone wild?
EDIT: I think it's the RequestQueue property that's causing the issue, still drilling down.
USTRUCT(BlueprintType)
struct FHttpRequest
{
GENERATED_USTRUCT_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString TheDest;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString TheData;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString mID;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString qID;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString delim;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString RequestVerb;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
EHttpRequestType RequestType;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
FString JsonObjectField;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "HTTP Request")
EHttpResponse ResponseType;
FServerInformation UpdateServer;
void SetData(FString newData)
{
TheData = newData;
}
void SetDestination(FString& newDest)
{
TheDest = newDest;
}
void SetModuleInfo(FString& newMID, FString& newQID)
{
mID = newMID;
qID = newQID;
}
void SetRequestType(EHttpRequestType NewRequestType)
{
RequestType = NewRequestType;
switch (RequestType)
{
case EHttpRequestType::HRT_ReceiveServerList:
RequestVerb = "GET";
TheDest = "/?ReceiveServerList=True";
break;
case EHttpRequestType::HRT_RegisterServer:
RequestVerb = "PUT";
JsonObjectField = "ServerRegistration";
break;
case EHttpRequestType::HRT_UnregisterServer:
RequestVerb = "PUT";
JsonObjectField = "ServerDeregistration";
break;
case EHttpRequestType::HRT_CheckIn:
RequestVerb = "PUT";
JsonObjectField = "ServerCheckIn";
break;
}
}
FHttpRequest()
{
delim = ""; TheDest = ""; TheData = "/?"; mID = ""; qID = ""; RequestVerb = "GET"; RequestType = EHttpRequestType::HRT_None; JsonObjectField = ""; ResponseType = EHttpResponse::HR_None;
}
};
On 26 Nov 2015 10:55 p.m., Pauli Jokela notifications@github.com wrote:
Whenever I try to register a new server or refresh the server list (eg. whenever I try to connect to the server), UE just decides to crash.
I'm assuming this is not because I'm using EHttpResponse objects instead of FHttpResponse?
MachineId:EEB3EC164EFA109BABF400B976C80297 EpicAccountId:a11e237e436949d0a57aad4d403f57fc
Access violation - code c0000005 (first/second chance not available)
""
UE4Editor_Core!scalable_msize() [d:\depot\ue4\engine\source\thirdparty\inteltbb\inteltbb-4.0\src\tbbmalloc\frontend.cpp:2615]
UE4EditorCore!FMallocTBB::Realloc() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\core\private\hal\malloctbb.cpp:70]
UE4EditorCore!FHeapAllocator::ForAnyElementType::ResizeAllocation() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\core\public\containers\containerallocationpolicies.h:344]
UE4Editor_MasterServer!TArray<FHttpRequest,FDefaultAllocator>::Emplace<FHttpRequest const & __ptr64>() [c:\program files (x86)\epic games\4.10\engine\source\runtime\core\public\containers\array.h:1735]
UE4Editor_MasterServer!UMasterServerFunctions::TransmitRequest() [c:\users\didan\documents\unreal projects\hideordie\plugins\masterserver\source\masterserver\private\masterserverfunctions.cpp:77]
UE4EditorCoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4EditorCoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:484]
UE4EditorCoreUObject!UObject::ProcessContextOpcode() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1755]
UE4EditorCoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4EditorCoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:608]
UE4EditorCoreUObject!UObject::execVirtualFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1842]
UE4EditorCoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4EditorCoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4EditorCoreUObject!UObject::ProcessEvent() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1053]
UE4EditorEngine!AActor::ProcessEvent() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:580]
UE4EditorEngine!FInputActionHandlerDynamicSignature::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:93]
UE4EditorEngine!FInputActionUnifiedDelegate::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:189]
UE4EditorEngine!UPlayerInput::ProcessInputStack() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\userinterface\playerinput.cpp:1117]
UE4EditorEngine!APlayerController::ProcessPlayerInput() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:2281]
UE4EditorEngine!APlayerController::TickPlayerInput() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3816]
UE4EditorEngine!APlayerController::PlayerTick() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:1950]
UE4EditorEngine!APlayerController::TickActor() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3892]
UE4EditorEngine!FActorTickFunction::ExecuteTick() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:107]
UE4EditorEngine!FTickFunctionTask::DoTask() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\ticktaskmanager.cpp:141]
UE4EditorEngine!TGraphTask
Reply to this email directly or view it on GitHubhttps://github.com/RyroNZ/UE4MasterServer/issues/4.
Are you trying to pass a EHttpRequest into the transmit request? That's probably it, you can see the definition of the FHttpResponse in the masterserverfunctions header, I believe it will make it clear. Otherwise, if doesn't help I will get back to you in the morning :
On 26 Nov 2015 10:55 p.m., Pauli Jokela notifications@github.com wrote:
Whenever I try to register a new server or refresh the server list (eg. whenever I try to connect to the server), UE just decides to crash.
I'm assuming this is not because I'm using EHttpResponse objects instead of FHttpResponse?
MachineId:EEB3EC164EFA109BABF400B976C80297 EpicAccountId:a11e237e436949d0a57aad4d403f57fc
Access violation - code c0000005 (first/second chance not available)
""
UE4Editor_Core!scalable_msize() [d:\depot\ue4\engine\source\thirdparty\inteltbb\inteltbb-4.0\src\tbbmalloc\frontend.cpp:2615]
UE4EditorCore!FMallocTBB::Realloc() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\core\private\hal\malloctbb.cpp:70]
UE4EditorCore!FHeapAllocator::ForAnyElementType::ResizeAllocation() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\core\public\containers\containerallocationpolicies.h:344]
UE4Editor_MasterServer!TArray<FHttpRequest,FDefaultAllocator>::Emplace<FHttpRequest const & __ptr64>() [c:\program files (x86)\epic games\4.10\engine\source\runtime\core\public\containers\array.h:1735]
UE4Editor_MasterServer!UMasterServerFunctions::TransmitRequest() [c:\users\didan\documents\unreal projects\hideordie\plugins\masterserver\source\masterserver\private\masterserverfunctions.cpp:77]
UE4EditorCoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4EditorCoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:484]
UE4EditorCoreUObject!UObject::ProcessContextOpcode() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1755]
UE4EditorCoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4EditorCoreUObject!UObject::CallFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:608]
UE4EditorCoreUObject!UObject::execVirtualFunction() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1842]
UE4EditorCoreUObject!UObject::ProcessInternal() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:698]
UE4EditorCoreUObject!UFunction::Invoke() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:4198]
UE4EditorCoreUObject!UObject::ProcessEvent() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1053]
UE4EditorEngine!AActor::ProcessEvent() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:580]
UE4EditorEngine!FInputActionHandlerDynamicSignature::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:93]
UE4EditorEngine!FInputActionUnifiedDelegate::Execute() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\classes\components\inputcomponent.h:189]
UE4EditorEngine!UPlayerInput::ProcessInputStack() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\userinterface\playerinput.cpp:1117]
UE4EditorEngine!APlayerController::ProcessPlayerInput() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:2281]
UE4EditorEngine!APlayerController::TickPlayerInput() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3816]
UE4EditorEngine!APlayerController::PlayerTick() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:1950]
UE4EditorEngine!APlayerController::TickActor() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\playercontroller.cpp:3892]
UE4EditorEngine!FActorTickFunction::ExecuteTick() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\actor.cpp:107]
UE4EditorEngine!FTickFunctionTask::DoTask() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\engine\private\ticktaskmanager.cpp:141]
UE4EditorEngine!TGraphTask
Reply to this email directly or view it on GitHubhttps://github.com/RyroNZ/UE4MasterServer/issues/4.
No, the entire "FHttpResponse" thing was just a typo in the README.md, as far as I can see (had to be EHttpResponse instead, when defining the delegates).
I'm unable to get a clear picture on what's actually causing the crash, because depending on what function I call (ie. register server, refresh server list etc.), it produces a different crash, all pointing to a memory-related issue (released pointers etc.).
When registering a new server, the crashes seem to be pointing at the following two lines in MasterServerFunctions.cpp:
ServerRegisteredEvent.RemoveDynamic(this, &UMasterServerFunctions::OnRegisteredServer);
ServerRegisteredEvent.AddDynamic(this, &UMasterServerFunctions::OnRegisteredServer);
Managed to figure out. Since I'm new to UE (but a long time user of C++), I didn't know that I had to set the UMasterServerFunctions property as a UPROPERTY(). After I did that, everything started working as it should.
Ah woops browsing on my phone and didn't see you fixed already! Good job :)
On 27 Nov 2015 1:10 a.m., Pauli Jokela notifications@github.com wrote:
Managed to figure out. Since I'm new to UE (but a long time user of C++), I didn't know that I had to set the UMasterServerFunctions property as a UPROPERTY(). After I did that, everything started working as it should.
Reply to this email directly or view it on GitHubhttps://github.com/RyroNZ/UE4MasterServer/issues/4#issuecomment-159897890.
Oh OK yeah that would of gone to the output window - simply marking any function you wish to use dynamic delegates with as UFUNCTION() should fix :)
On 27 Nov 2015 12:23 a.m., Pauli Jokela notifications@github.com wrote:
Nope, sadly it appears to happen the first time a function on MasterServer is called.
I did just try debugging the entire project, and it's throwing a breakpoint on the following (internal) line:
ensureMsgf(this->IsBound(), TEXT("Unable to bind delegate to '%s' (function might not be marked as a UFUNCTION)"), InMacroFunctionName);
I see that it's trying to call *MyGameInstance::OnServerRegistered, then throwing the previous line.
Reply to this email directly or view it on GitHubhttps://github.com/RyroNZ/UE4MasterServer/issues/4#issuecomment-159888978.
Thanks for the help. :)
Whenever I try to register a new server or refresh the server list (eg. whenever I try to connect to the server), UE just decides to crash.