Используйте обработчик SIGTRAP из собственной библиотеки C и Crashlytics - PullRequest
0 голосов
/ 14 июля 2020

Я хотел использовать обработчики сигналов как из Crashlytics, так и из моей собственной библиотеки C в моем приложении iOS.

Эта собственная C библиотека при загрузке в память (во время запуска приложения) устанавливает обработчик SIGTRAP. Я инициализирую Crashlytics [FIRApp configure] в точке входа приложения didFinishLaunchingWithOptions. Я вызываю свою собственную библиотечную функцию в viewcontroller приложения.

При каждом запуске приложения я всегда получаю ложный отчет cra sh на панели инструментов Crashlytics, но приложение не сработало sh. В отчете говорится, что ошибка sh произошла при вызове функции собственной библиотеки.

Я попытался заставить оба обработчика сосуществовать, используя sigaction() для извлечения обработчика сигнала.
После запуска приложения выполните следующие шаги в didFinishLaunchingWithOptions

1  NativeC SIGTRAP handler retrieved : A
2  Crashlytics initialization done
3  Crashlytics SIGTRAP handler retrieved : B 
4  with B != A then Set SIGTRAP handler with A
5  SIGTRAP handler retrieved : A
  1. Есть ли способ использовать как собственный обработчик сигналов, так и обработчик сигналов Crashlytics на уровне приложения?
  2. Можно ли отключить обработчик SIGTRAP в Crashlytics? Если да, то есть ли какие-либо ограничения в отношении отчетности cra sh?
...