我正在运行本机库(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
答案 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");
这不完全是你所要求的,但我希望无论如何都会有所帮助。