如何调试崩溃的android本机库?

时间:2011-02-24 00:01:38

标签: android debugging native

我正在运行本机库(C ++)的junit测试,本机库进程崩溃并且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?我找不到它。也不是“堆叠”工具。

任何建议都表示赞赏!

-Henry

1 个答案:

答案 0 :(得分:5)

F//system/bin/app_process( 1656): stack corruption detected: aborted

这听起来像是在破坏局部变量。这是一种非常流行的方式:

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

这不完全是你所要求的,但我希望无论如何都会有所帮助。