tomaz / symbolicator

OS X and iOS crash log symbolicator
MIT License
49 stars 11 forks source link

doesn't find plugin/bundle dSYM files #9

Open robaho opened 4 years ago

robaho commented 4 years ago

I have an application that ships with several plugins/bundles. The plugin dSYM files are located in the application archive, but symbolicator does not load/find them, so those addresses are not symbolicated. There errors look like:

Symbolizing /Users/robertengels/Library/Developer/Xcode/Products/app.seashore/2.5.7 (2020021401)/Crashes/AppStore/BrMyhA4-2XIjigcRrymEik.xccrashpoint/DistributionInfos/all/Logs/2020-03-16_20-26-29.062_+0800-0f98468a2ad4731b940fed386b652f3f0075ec22.crash...
Detected app.seashore X86-64 [Seashore 2.5.7 (2020021401)]
Found 1 lines that need symbolication
> app.seashore.MonochromePlus: missing DWARF file!
0 of 1 2020-03-16_20-26-29.062_+0800-0f98468a2ad4731b940fed386b652f3f0075ec22.crash addresses symbolized

The bundle dSYM file is named: /Users/robertengels/Library/Developer/Xcode/Archives/2020-02-14/Seashore 2-14-20, 5.58 PM.xcarchive/dSYMs/Monochrome+.bundle.dSYM

robaho commented 4 years ago

I believe the problem comes from not processing the 'Binary Images' section in the crash file properly.

For instance, in this case, the entry is:

       0x111401000 -        0x111406ff7 +app.seashore.MonochromePlus (1.0) <B42FF5AC-3371-38C0-87E4-1D7D5010168A> /Applications/Seashore.app/Contents/PlugIns/Monochrome+.bundle/Contents/MacOS/Monochrome+

and this tell you the dSYM file name should be Monochrome+ but the code is looking for a file named app.seashore.MonochromePlus which is the bundle identifier.

tomaz commented 4 years ago

Thanks for reporting! Seems like a search for largest common prefix should fix it.

I am no longer developing for Apple platforms, but I will accept pull request if you're willing to invest some time to it...