Download

Help a Newbie Understand this Crash

So I have been trying to go through Brandon Garvin’s tutorial on integrating PolyVox into Unreal Engine here: Voxel Terrain In Unreal Engine 4 Part 1: Getting Setup - Garvinized
I think I understand how this is all fitting together, but try as I might, I consistently get a crash in the UE4Editor-Core.dll whenever I try to simulate the world after applying his code. Obviously it is going to be hard to tell me what I am doing wrong from a very vague stack trace, but I am hoping someone has enough experience with this to give me some ideas where to start looking. I’m very new to Unreal Engine, and my C++ is very rusty as I am primarily a business application developer using VB.Net and a bit of C#.

I’m assuming I’m doing something wrong, but it seems like it would have to be very wrong to cause a crash in the core dll.

Anyway, here is the Stack Trace I get on the crash:



 	UE4Editor-Core.dll!rml::internal::Block::privatizePublicFreeList(void)	Unknown
 	UE4Editor-Core.dll!rml::internal::Bin::getPublicFreeListBlock(void)	Unknown
 	UE4Editor-Core.dll!rml::internal::ExtMemoryPool::initTLS(void)	Unknown
 	UE4Editor-Core.dll!scalable_malloc()	Unknown
>	UE4Editor-Core.dll!FMallocTBB::Malloc(unsigned __int64 Size=424, unsigned int Alignment=0) Line 44	C++
 	UE4Editor-Core.dll!`anonymous namespace'::FICUOverrides::Malloc(const void * context=0x0000000000000000, unsigned __int64 size) Line 38	C++
 	icuuc53.dll!0000000049fc4034()	Unknown
 	icuuc53.dll!0000000049fc3de3()	Unknown
 	icuuc53.dll!000000004a0ac1ec()	Unknown
 	UE4Editor-Core.dll!FICUBreakIteratorManager::CreateCharacterBoundaryIterator() Line 33	C++
 	UE4Editor-Core.dll!FBreakIterator::CreateCharacterBoundaryIterator() Line 11	C++
 	UE4Editor-Slate.dll!FTextLayout::FTextLayout() Line 1086	C++
 	UE4Editor-Slate.dll!FSlateTextLayout::FSlateTextLayout(FTextBlockStyle InDefaultTextStyle={...}) Line 21	C++
 	UE4Editor-Slate.dll!FSlateTextLayout::Create(FTextBlockStyle InDefaultTextStyle={...}) Line 10	C++
 	UE4Editor-Slate.dll!FTextBlockLayout::FTextBlockLayout(FTextBlockStyle InDefaultTextStyle={...}, const TOptional<enum ETextShapingMethod> InTextShapingMethod={...}, const TOptional<enum ETextFlowDirection> InTextFlowDirection={...}, const TBaseDelegate<TSharedRef<FSlateTextLayout,0>,FTextBlockStyle> & InCreateSlateTextLayout={...}, TSharedRef<ITextLayoutMarshaller,0> InMarshaller={...}, TSharedPtr<IBreakIterator,0> InLineBreakPolicy={...}) Line 13	C++
 	UE4Editor-Slate.dll!MakeUnique<FTextBlockLayout,FTextBlockStyle const & __ptr64,TOptional<enum ETextShapingMethod> const & __ptr64,TOptional<enum ETextFlowDirection> const & __ptr64,TBaseDelegate<TSharedRef<FSlateTextLayout,0>,FTextBlockStyle>,TSharedRef<FPlainTextLayoutMarshaller,0>,TSharedPtr<IBreakIterator,0> const & __ptr64>(const FTextBlockStyle & <Args_0>={...}, const TOptional<enum ETextShapingMethod> & <Args_1>={...}, const TOptional<enum ETextFlowDirection> & <Args_2>={...}, TBaseDelegate<TSharedRef<FSlateTextLayout,0>,FTextBlockStyle> && <Args_3>={...}, TSharedRef<FPlainTextLayoutMarshaller,0> && <Args_4>={...}, const TSharedPtr<IBreakIterator,0> & <Args_5>={...}) Line 367	C++
 	UE4Editor-Slate.dll!STextBlock::Construct(const STextBlock::FArguments & InArgs={...}) Line 49	C++
 	UE4Editor-Slate.dll!TDecl<STextBlock,RequiredArgs::T0RequiredArgs>::operator<<=(const STextBlock::FArguments & InArgs={...}) Line 1079	C++
 	UE4Editor-Slate.dll!SMultiBoxWidget::AddBlockWidget(const FMultiBlock & Block, TSharedPtr<SHorizontalBox,0> HorizontalBox={...}, TSharedPtr<SVerticalBox,0> VerticalBox={...}, EMultiBlockLocation::Type InLocation=None, bool bSectionContainsIcons=false) Line 562	C++
 	UE4Editor-Slate.dll!SMultiBoxWidget::BuildMultiBoxWidget() Line 655	C++
 	UE4Editor-Slate.dll!FMultiBox::MakeWidget(bool bSearchable) Line 274	C++
 	UE4Editor-Slate.dll!FMenuBuilder::MakeWidget() Line 169	C++
 	UE4Editor-DetailCustomizations.dll!FComponentTransformDetails::BuildTransformFieldLabel(ETransformField::Type TransformField) Line 131	C++
 	UE4Editor-DetailCustomizations.dll!FComponentTransformDetails::GenerateChildContent(IDetailChildrenBuilder & ChildrenBuilder={...}) Line 492	C++
 	UE4Editor-PropertyEditor.dll!FDetailCustomBuilderRow::OnGenerateChildren(TArray<TSharedRef<IDetailTreeNode,0>,FDefaultAllocator> & OutChildren={...}) Line 60	C++
 	UE4Editor-PropertyEditor.dll!FDetailItemNode::GenerateChildren(bool bUpdateFilteredNodes) Line 231	C++
 	UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateNodesFromCustomizations(const TArray<FDetailLayoutCustomization,FDefaultAllocator> & InCustomizationList={...}, bool bDefaultLayouts=false, TArray<TSharedRef<IDetailTreeNode,0>,FDefaultAllocator> & OutNodeList={...}, bool & bOutLastItemHasMultipleColumns=false) Line 627	C++
 	UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForSingleLayout(const FName RequiredGroupName={...}, bool bDefaultLayout, bool bNeedsGroup, const TArray<FDetailLayoutCustomization,FDefaultAllocator> & LayoutList={...}, TArray<TSharedRef<IDetailTreeNode,0>,FDefaultAllocator> & OutChildren={...}, bool & bOutLastItemHasMultipleColumns=false) Line 649	C++
 	UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateChildrenForLayouts() Line 674	C++
 	UE4Editor-PropertyEditor.dll!FDetailCategoryImpl::GenerateLayout() Line 834	C++
 	UE4Editor-PropertyEditor.dll!FDetailLayoutBuilderImpl::BuildCategories(const TMap<FName,TSharedPtr<FDetailCategoryImpl,0>,FDefaultSetAllocator,TDefaultMapKeyFuncs<FName,TSharedPtr<FDetailCategoryImpl,0>,0> > & CategoryMap, TArray<TSharedRef<FDetailCategoryImpl,0>,FDefaultAllocator> & OutSimpleCategories={...}, TArray<TSharedRef<FDetailCategoryImpl,0>,FDefaultAllocator> & OutAdvancedCategories={...}) Line 141	C++
 	UE4Editor-PropertyEditor.dll!FDetailLayoutBuilderImpl::GenerateDetailLayout() Line 174	C++
 	UE4Editor-PropertyEditor.dll!SDetailsViewBase::UpdatePropertyMap() Line 1289	C++
 	UE4Editor-PropertyEditor.dll!SDetailsView::PostSetObject() Line 673	C++
 	UE4Editor-PropertyEditor.dll!SDetailsView::SetObjectArrayPrivate(const TArray<TWeakObjectPtr<UObject,FWeakObjectPtr>,FDefaultAllocator> & InObjects={...}) Line 485	C++
 	UE4Editor-PropertyEditor.dll!SDetailsView::SetObjects(const TArray<UObject *,FDefaultAllocator> & InObjects={...}, bool bForceRefresh, bool bOverrideLock) Line 324	C++
 	UE4Editor-LevelEditor.dll!SActorDetails::SetObjects(const TArray<UObject *,FDefaultAllocator> & InObjects={...}, bool bForceRefresh) Line 205	C++
 	UE4Editor-LevelEditor.dll!SLevelEditor::OnActorSelectionChanged(const TArray<UObject *,FDefaultAllocator> & NewSelection={...}, bool bForceRefresh) Line 1458	C++
 	UE4Editor-LevelEditor.dll!TBaseSPMethodDelegateInstance<0,SLevelEditor,0,TTypeWrapper<void> __cdecl(TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool)>::Execute(const TArray<UObject *,FDefaultAllocator> & <Params_0>={...}, bool <Params_1>) Line 317	C++
 	UE4Editor-LevelEditor.dll!TBaseSPMethodDelegateInstance<0,SLevelEditor,0,void __cdecl(TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool)>::ExecuteIfSafe(const TArray<UObject *,FDefaultAllocator> & <Params_0>={...}, bool <Params_1>) Line 424	C++
 	UE4Editor-LevelEditor.dll!TBaseMulticastDelegate<void,TArray<UObject * __ptr64,FDefaultAllocator> const & __ptr64,bool>::Broadcast(const TArray<UObject *,FDefaultAllocator> & <Params_0>={...}, bool <Params_1>) Line 921	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::UpdateFloatingPropertyWindowsFromActorList(const TArray<UObject *,FDefaultAllocator> & ActorList={...}, bool bForceRefresh) Line 68	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::UpdateFloatingPropertyWindows(bool bForceRefresh) Line 59	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::CreatePIEGameInstance(int InPIEInstance, bool bInSimulateInEditor=false, bool bAnyBlueprintErrors=false, bool bStartInSpectatorMode=true, bool bRunAsDedicated=false, float PIEStartTime=16795114.0) Line 3346	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::PlayInEditor(UWorld * InWorld=0x000000003916ab00, bool bInSimulateInEditor=234) Line 2426	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::StartQueuedPlayMapRequest() Line 1141	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds=0.0255938433, bool bIdleMode=false) Line 1306	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 371	C++
 	UE4Editor.exe!FEngineLoop::Tick() Line 2834	C++
 	UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance=0x0000000000553c8e, HINSTANCE__ * hPrevInstance=0x000000000000000a, int nCmdShow=0) Line 156	C++
 	UE4Editor.exe!GuardedMainWrapper(const wchar_t * CmdLine=0x0000000000553c8e, HINSTANCE__ * hInInstance=0x0000000000000000, HINSTANCE__ * hPrevInstance=0x000000000000000a, int nCmdShow=-432979392) Line 126	C++
 	UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance=0x000000013f930000, HINSTANCE__ * hPrevInstance=0x0000000000000000, char * __formal=0x0000000000000000, int nCmdShow=10) Line 202	C++
 	UE4Editor.exe!__scrt_common_main_seh() Line 264	C++
 	kernel32.dll!0000000076f859cd()	Unknown
 	ntdll.dll!00000000770ba2e1()	Unknown


It’s looking like a memory allocation error. If you want to know more, you are going to have to debug your code. I doubt anyone can tell you much more than this.

Yeah, I know that it is a memory allocation error, but the stack trace does not go up as far as any code that I have written. I assume that something I have written is initiating the call to this particular allocation function, but can’t see it in the call stack. Is there a trick to getting visual studio debug information to show the full call stack all the way up to the initiating function in my code?