How to interpret crash logs?

Are there any resources available about how to understand and parse crash logs? I’m getting fairly frequent crashes in my game, but from the crash log I’m not able to understand what exactly is failing. The crash is:

0+++RUMBLEFEST++++++++++++++++++++++++++0x0000000100d16450+_ZN8dmScript14SetStreamValueIfEEvPvid+++838788
1+++libsystem_platform.dylib++++++++++++0x0000000184517b44+_sigtramp+++52
2+++RUMBLEFEST++++++++++++++++++++++++++0x0000000100cbc494+_ZN8dmScript14SetStreamValueIfEEvPvid+++470216
3+++RUMBLEFEST++++++++++++++++++++++++++0x0000000100cbc494+_ZN8dmScript14SetStreamValueIfEEvPvid+++470216
4+++RUMBLEFEST++++++++++++++++++++++++++0x0000000100ccce28+_ZN8dmScript14SetStreamValueIfEEvPvid+++538204
5+++libsystem_pthread.dylib+++++++++++++0x000000018451c31c++++308
6+++libsystem_pthread.dylib+++++++++++++0x000000018451c1e8++++0
7+++libsystem_pthread.dylib+++++++++++++0x000000018451ac28+thread_start+++4
1 Like

The first line is where the crash occurs, the the rest of the lines are the calls leading up to the crash.
C++ mangled text can be a bit obfustaced, but you’ve probably already guess that it’s a call to dmScript::SetStreamValue that causes it. If you have osx/linux, you can run c++filt -n _ZN8dmScript14SetStreamValueIfEEvPvid and you’ll get void dmScript::SetStreamValue<float>(void*, int, double)

You are setting values to a buffer, from Lua, right?
This looks very much like a bug in our Buffer API, and it should never crash like that.

How is this buffer created? What’s the format (try print(buffer))
And how are you accessing it?

3 Likes

Thanks for your response! I’m not actively calling any stream buffers, so it must be one of the 3rd party libs I’m using.

Should I search for SetStreamValue to find the culprit? Or do you have another suggestion to find what might be causing it?

Which extensions are you using?

admob and rendercam:


1 Like

Hmm, not sure why any of those would use a buffer.

No, just checked, those extensions doesn’t use any buffers.
We do use buffers as return value from resource.load, is that a function you use?

When using a buffer from Lua, there’s no call to SetStreamValue, but you instead use it as an array: mybuffer[0] = 0

Perhaps you could share the project or invite me, and I can take a look? (mathias.westerdahl@king.com)

1 Like