ClassFinder crash on iOS debug

  • UE 4.7.3
  • iPod 5 / iOS 8,3
  • OSX 10.9.4 / Xcode 6.2 → Remote build from Windows 7

When building on iOS from Frontend with Debug configuration I have a crash on startup.

When I connected the iPod to xcode to debug it looks like the crash occurs when I’m using FClassFinder in the Pawn constructor during CDO creation:

ARB2Boxer::ARB2Boxer(const class FObjectInitializer& PCIP)
	: Super(PCIP)
{
	static ConstructorHelpers::FClassFinder<UObject> DefaultAnimationBlueprint(TEXT("/Game/Characters/Boxer/Blueprints/BoxerFight_AnimBlueprint"));

Where the BoxerFight_AnimBlueprint is an Animation Blueprint.

I receive the EXC_BAD_ACCESS (code=2, address=0xf1090c0)

The whole stacktrace looks like that:

The interesting is that at the end, while ULinkerLoad::CreateExport it says, that this is NULL.

Here’s the log

[link text][2]

It happens only when bulding on iOS Debug. Win64 Debug/Dev is working. Android Debug/Dev/Shipping is working. iOS Dev/Shipping is working.

Any sugestions? I’m rather out of ideas :frowning:

Hi zompi2,

Here is a Stack Overflow thread that deals with the same error, and it also mentions being unable to locally debug. Have a look and see if any of that relates to the issue you’re seeing.

Thanks!

Well, there is nothing related to objective-c, no try/catch or anything what could sound similar. But…

In the method before, there is:

// Map an import/export index to an object; all errors here are fatal.
UObject* ULinkerLoad::IndexToObject( FPackageIndex Index )
{
	if( Index.IsExport() )
	{
		check(ExportMap.IsValidIndex( Index.ToExport() ) );
		return CreateExport( Index.ToExport() );
	}

Could it be possible that check() is working with delay in the next step? And why Index would be invalid in debug… I’ll check this on Monday :wink:

PS. On the other hand, it still looks like the Linker was removed by garbage collector. It enters the CreateExport function, but it become null from out of nowhere.

Ok, so I tried few things.

The check() isn’t guilty for that error.

I tried FObjectFinder< UAnimBlueprint > but it has simillar error (ULinkerLoad becomes NULL).

But when I added new, simple and pure, Animation Blueprint and loaded it it went just fine (it crashed later, during the map loading). So it looks like there is something wrong with the blueprint itself.

Unfortunatelly, the blueprint is quite complex at this point and I have no idea what could make it so wrong :frowning:

Edit: We found some Linker warnings during cooking, maybe they are the cause. Funny is only iOS might be so restrict :wink:

Hi zompi2,

I reached out to the iOS dev for more info, here is his response:

He’s running out of stack space while in debug. There will be a fix for this in 4.8, but in the mean time he can increase the minimum thread stack size to 256k and the main thread stack size to 2Mb. The main thread size is specified at the top of IOSAppDelegate.m and the thread size is specified in GetDefaultStackSize in ApplePlatformRunnableThread.h and is AdjustStackSize()

Hope this helps!

You are a golden person, it helped! Thank you :smiley:

Hey, happy to help, glad it worked!