Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

resymbolification #284

Closed
headupinclouds opened this issue Jan 29, 2017 · 3 comments
Closed

resymbolification #284

headupinclouds opened this issue Jan 29, 2017 · 3 comments
Labels

Comments

@headupinclouds
Copy link
Collaborator

headupinclouds commented Jan 29, 2017

Sample end-to-end resymbolification for Android (idk-stack) and iOS (resymbolicate) is tested in this project.
https://github.com/elucideye/integration

  • iOS: symbolicatecrash w/ *.dSYM and *.crash
  • Android: ndk-stack w/ adb logcat -d > crash.txt and pre stripped libraries (build-id)

Similar patches have been applied to drishti.

This seems functional enough for initial needs, but it is worth additional discussion, and it may be a worthwhile thing to polish w/ patches to Hunter and/or Polly (i.e., something like --resymbolicate).

The installation locations should be standardized.

The "build-id" solution for Android uses this layout:

_install/android-ndk-r10e-api-19-armeabi-v7a-neon-hid-sections/.build-id/
└── ab
    └── cdef1234.debug. # essentially the lib w/ all symbols

The APPLE/XCODE version currently uses this convention:

_install/ios-10-1-dep-8-0-libcxx-hid-sections/.dSYM/
└── drishti.dSYM

Since symbols typically are not included with a release tree, perhaps they should be stored in _symbols, following current Hunter conventions.

More platforms will need to be tested/added, and there is currently no MSVC/Windows support. Does the "build-id" approach work for LLVM? MSVC will almost certainly need a dedicated branch. The llvm repository provides CMake llvm_externalize_debuginfo.

http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20151130/316606.html

@ruslo
Copy link
Collaborator

ruslo commented Jan 31, 2017

Related ruslo/CGold#17 ?

@headupinclouds
Copy link
Collaborator Author

It is related. This is aimed specifically at resymbolicating stack traces from stripped libraries or executables, where only addresses are reported.

@headupinclouds
Copy link
Collaborator Author

The current CMake files are stashing .dSYM files for Xcode and full symbols for Android (--build-id).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants