Is there any way to get dsym files?

Hello

I’ve been looking all over the place for dysm files so that I can debug crash reports on iOS. I’ve seen lots of people asking for these, but never an answer on how to get them. Am I just missing this? Surely there must be a way… how do people fix bugs submitted in iTunesConnect otherwise?

Thanks all for any advice about this topic!

Nate
[import]uid: 118346 topic_id: 28306 reply_id: 328306[/import]

I guess those are for pure Xcode :slight_smile:

I could be wrong, but I think all API’s for testflight are only c++ - if that was the question.

Joakim [import]uid: 81188 topic_id: 28306 reply_id: 114351[/import]

I suppose you can get crash logs from test flight too, but that’s not really my question.

When I build native apps with Xcode without Corona I can get the .dsym files. These contain the symbols needed to link the crash logs function pointers (in the stack trace) to actual function names. This will then let me figure out exactly where my apps are crashing. Users are allowed to send crash reports to Apple, and in iTunesConnect I can get those reports. The problem is that I can’t read them without the dsym files. These would be created somehow on the Corona Servers when they build my app remotely.

So my question is, is there a way to get these files from the corona servers? If not, is there some other way people are deciphering crash reports from Apple?

Thanks!
Nate
[import]uid: 118346 topic_id: 28306 reply_id: 114354[/import]

I don’t believe dsym files are available on Corona - never been able to symbolise crash reports on iOS. I’m not sure whether there’s an insurmountable hurdle stopping Corona from doing this, but it sure would be handy - makes the proverbial needle a lot easier to find in that damn hay stack. [import]uid: 33275 topic_id: 28306 reply_id: 114429[/import]

Let me shed some light on this. DISCLAIMER: This is a purely speculated guess… But based on years of debugging unix apps, it makes sense…

When a program crashes on most unix system it usually does what is called a core dump. Basically a memory foot print of the applciation. Linux and Mach which are the two kernels used by Android and iOS by default don’t leave core dumps around for us.

That aside, when an application is compiled, you can either have it contain debugging symbols (what I suspect is meant by dsym) or not. These debugging symbols add weight to the application and in practice, you turn them off before you make your production run. If you have a core dump and you have debugging symbols (the names of the variables and functions), it becomes much easier to actually debug your program. In our mobile case, if you’ve ever looked at a crash log you see all of these hexadecimal addresses that have no meaning. It’s because there are no debugging symbols.

When you build a mobile app for iOS at least you can have a developer profile or a distribution profile. Xcode when building the app will leave in debugging symbols if you use a developer profile, or strip them on a distribution profile. I don’t really know how Android deals with that. So if you’re building an app with a distribution profile, the dysm should be available in the app for debuggers to use.

But here is the REAL problem with Corona SDK. You’re compiled app at the end is the Corona byte code interpreter. That app has been compiled for production and it does not have a symbol table with it. Any attempts to debug a Corona SDK app means debugging Corona itself, not your Lua code.

Someone please correct me if my speculation is wrong.
[import]uid: 19626 topic_id: 28306 reply_id: 114463[/import]

Hi Rob

Yes, that sounds correct. I’m in the same boat, lots of unix over the years and I’ve built native iOS apps.

It would be great to have a flag to set for whether or not to build with debugging symbols. It would definitely make the app larger, but it would be worth it. Also, when I’ve released apps to the store, I’ve done both a dev and production build and that gives me a way to tied crash logs to the real code.

All that said, I don’t know if it would be useful since as you said Lua is interpreted… it would probably just tie back to corona code, not our code. But it would be nice to hear from Corona on this point since it’s been brought up many times.

Thanks
Nate [import]uid: 118346 topic_id: 28306 reply_id: 114731[/import]