Я столкнулся с проблемой сбоя в нативной части моего кода Android.
Мое приложение похоже на приложение, описанное в этом сценарии (Нажмите здесь) .
Уровень Java будет вызывать собственный уровень, вызывая некоторый собственный API и инициируя некоторый процесс.
Собственный вызов немедленно возвращается обратно при запуске потока в нативном для обработки.
Как только обработка завершена, собственный поток вызовет функцию Java (функцию обратного вызова) для информирования о результате. Это было сделано с помощью функций JNI и использования * jvm-> AttachCurrentThread ().
То, что я наблюдаю из дампа трассировки стека в журнале cat, это то, что он даже не завершил обработку, и он всегда падает на malloc или свободен (после некоторых malloc или после некоторых освобождений и не согласован).
Есть ли способ найти повреждение памяти в нативном коде Android?
Как упоминалось в приведенной выше ссылке, я попытался с этим решением, добавив
LOCAL_EXPORT_LDLIBS += -lc
флаг в файле android.mk. Но это не помогло, я все еще могу наблюдать за авариями.
Пожалуйста, дайте мне знать, если кто-нибудь знает решение для того же.
P.S .: Код, который я использую для нативной обработки, полностью протестирован для другого продукта (которого нет на Android). Столкнувшись с проблемами при попытке портирования на Android.
Спасибо и всего наилучшего,
SSuman185