Как отладить разбитую родную библиотеку Android? - PullRequest
1 голос
/ 24 февраля 2011

Я запускаю тест junit для нативной библиотеки (C ++), сбой процесса нативной библиотеки и logcat показывает:

I/ActivityManager(  161): Force stopping package xxxxx uid=10043
I/ActivityManager(  161): Start proc xxxxx for added application xxxx: pid=1656 uid=10043 gids={1015}
I/TestRunner( 1656): started: testAddressBook(xxxxx.AddressBookTest)
F//system/bin/app_process( 1656): stack corruption detected: aborted
I/ActivityManager(  161): Process xxxxx (pid 1656) has died.

Где xxxxx - имя процесса.

Я пытаюсь следовать инструкции на http://source.android.com/porting/debugging_native.html, но инструкция сбивает с толку:

В случае сбоя подключитесь с помощью aproto и запустите logcat на устройстве

Что такое aproto? Я не могу найти это. Ни инструмент "стека".

Любое предложение приветствуется!

-Генри

1 Ответ

5 голосов
/ 24 февраля 2011
F//system/bin/app_process( 1656): stack corruption detected: aborted

Звучит так, будто вы уничтожаете локальную переменную.Вот действительно популярный способ сделать это:

char localVar[16];
sprintf(localVar, "And this is why sprintf is the devil");

Это не совсем то, что вы просили, но я надеюсь, что в любом случае это поможет.

...