Мне нужно найти все трассировки стека, когда приложение работает в iOS. Я использовал Thread.callStackSymbols, однако он дает только символ стека для этого конкретного потока, а не для другого потока.
На самом деле то, что вы пытаетесь сделать, является очень сложной задачей. Вы должны реализовать свою собственную логику обхода стека для извлечения трассировки стека из других потоков, потому что Thread.callStackSymbols будет возвращать трассировку стека только для текущего потока.
Я предлагаю вам взглянуть на PLCrashReporter исходный код, особенно на FrameWalker.
PLCrashReporter
FrameWalker
Короче говоря, шаги:
Получить список тем с помощью функции task_threads(): https://opensource.plausible.coop/stash/projects/PLCR/repos/plcrashreporter/browse/Source/PLCrashLogWriter.m?at=refs%2Ftags%2F1.0#694
task_threads()
Получение состояний потоков с помощью функции thread_get_state(): https://opensource.plausible.coop/src/projects/PLCR/repos/plcrashreporter/browse/Source/PLCrashFrameWalker_arm.c?at=refs%2Ftags%2F1.0#73
thread_get_state()
Пройдите по стеку таркета, используя состояние потока: https://opensource.plausible.coop/stash/projects/PLCR/repos/plcrashreporter/browse/Source/PLCrashFrameWalker_arm.c?at=refs%2Ftags%2F1.0#104