(_hidden#919_:0) inside crash symbolication file
Asked Answered
M

2

12

I am attempting to manually symbolicate a crash log since Xcode 7 will not do it for me. Yet, I come to this result:

enter image description here

What does this mean and what can I do with this? I have used atos as well and it just gives me the same address! I am sure I have the right dSYM, .app, and log as well.

Thanks!

Mockingbird answered 21/11, 2015 at 17:40 Comment(3)
Did you figured this out ?Housefly
Have you used Swift? Is bitcode enabled when compiling?Fairman
@IgorOliveira, If your question still actual , please check my answer. I have struggled for 3 days on same problem, until found the solution!Steersman
S
12

When you see __hidden_ in crash log for function names, this means you enabled bitcode during ipa export from archive. In order to be able to symbolicate crash log you should use module map files from archive: enter image description here

Here are the commands you need to run in terminal:


dsymutil --symbol-map PATH_TO_BCSYMBOLMAPS_DIR PATH_TO_DSYM


for all symbol map files. After this command you can use atos command as you have tried:

dwarfdump --arch YOUR_ARCH myApp.dSYM --lookup YOUR_LOOKUP_ADDRESS

Steersman answered 28/6, 2017 at 7:47 Comment(1)
This should be marked as answer. It helped me figure out the issue. Thanks @David.Consubstantial
N
0

To symbolicate a crash log, you require XCArchive. Inside the xcarchive, we are interested in two things:

  1. dSYM file: It contains the debug information for the binary. MyApp.xcarchive/dSYMs/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp
  2. BCSymbolMap file: It contains the human readable names for symbols. MyApp.xcarchive /BCSymbolMaps/.bcsymbolmap

The archive may have multiple dSYM and BCSymbolMap files if it has frameworks. We have to identify the correct BCSymbolMap file for the binary. For this, we need to extract the build UUID of the build using the dwarfdump tool.

dwarfdump --uuid MyApp,xcarchive/dSYMs/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp

output:

UUID: B63B409F-FA67-334C-BDC0-28AE2BFD488A (arm64) MyApp.xcarchive/dSYMs/MyApp.app.dSYM/Contents/Resources/DWARF/MyApp

Resolve the obfuscated symbols in the dSYM file, using the dsymutil tool. Using the above symbol file:

dsymutil -symbol-map MyApp.xcarchive/MyApp.xcarchive/BCSymbolMaps/ B63B409F-FA67-334C-BDC0-28AE2BFD488A.bcsymbolmap MyApp.xcarchive/dSYMs/MyApp.app.dSYM

This command will symbolicate the dSYM file in-place. Now, if we open the crashlog in XCode, it will be able to resolve the symbols properly. Please note, XCode might need a minute to do this, so be patient. The symbols will appear automatically when it’s done.

If the crashlog was already opened in XCode before it was symbolicated, one might have to request re-symbolication from XCode. To do that, right-click on the crashlog in the device logs window and select Re-Smybolicate Log from the context menu.

Nonobedience answered 1/12, 2022 at 19:31 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.