繁体   English   中英

如何使用ARM DS-5在eclipse中调试Android本机库而不会发疯?

[英]How do I debug Android native lib in eclipse with ARM DS-5 without going crazy?

我在这里召唤Android NDK调试Ninjas!

我已经尝试了很多关于调试Android本机代码的教程,所以我不记得它们。 现在我正在努力让ARM DS-5工作。 我已经使用了Android NDK示例,其中主Activity加载了库。 Laggy,但有效。

但我的项目有点复杂。 我的主要活动有一个按钮,当我点击它时,SubActivity启动,它加载本机库。 当我只是尝试使用DS-5调试器时,当加载主活动时,我想调试器试图连接到lib,但是失败了,说:

Execution stopped at: 0xAFD0C52C
Connected to unknown platform
0xAFD0C52C   POP      {r4,r7}
file "D:\workspace\Project\bin\app_process"
WARNING(IMG53): app_process has no line debug information 
add-symbol-file "D:\workspace\Project\bin\libc.so"
Loading library symbols: libc.so
WARNING(IMG53): libc.so has no line debug information 
Execution stopped at: 0xAFD0C748
In thread 2 (OS thread id 7606)
In __futex_syscall3 (no debug info)
add-symbol-file "D:\workspace\Project\obj\local\armeabi\libName.so"
Execution stopped at: 0xAFD0C748
In thread 3 (OS thread id 7607)
Execution stopped at: 0xAFD0BFFC
In thread 4 (OS thread id 7608)
In __rt_sigtimedwait (no debug info)
Execution stopped at: 0xAFD0B854
In thread 5 (OS thread id 7609)
In select (no debug info)
Execution stopped at: 0xAFD0C748
In thread 6 (OS thread id 7610)
In __futex_syscall3 (no debug info)
Execution stopped at: 0xAFD0B70C
In thread 7 (OS thread id 7611)
In __ioctl (no debug info)
Execution stopped at: 0xAFD0B70C
In thread 8 (OS thread id 7612)
Execution stopped at: 0xAFD0C52C
In thread 1 (OS thread id 7605)
In epoll_wait (no debug info)
0xAFD0C52C   POP      {r4,r7}
WARNING(CMD454): The shared library D:\workspace\Project\obj\local\armeabi\libName.so is currently not loaded by the application so the request has been pended
cd "D:\workspace"
Working directory "D:\workspace"
directory "D:\workspace\Project"
Source directories searched: D:\workspace\Project;$cdir;$cwd;$idir
break -d -p "D:\workspace\Project\jni\Name.cpp":525
WARNING(CMD452-COR167): 
! Breakpoint 1 has been pended
! No compilation unit matching "D:/workspace/Project/jni/Name.cpp" was found
condition 1 
break-script 1 ""
ignore 1 0
break-stop-on-threads 1 
unsilence 1
Breakpoint 1 unsilenced

我认为它会在Main Activity启动时尝试连接到本机lib。 但是库会在以后加载!

我尝试了什么:

  • 在加载本机lib之后,在SubActivity中设置Java断点,然后附加DS-5调试器。 但是我从Eclipse那里得到了各种错误,说的是超时,无论如何。
  • 在调试配置设置中,我无法选择活动,这应该触发本机代码的调试,有组合框,但它被禁用:

问题本身:如果我的lib没有被主Activity加载,我如何让DS-5等待lib加载?

在此输入图像描述

你真的需要在调试和发布版本之间有确切的行为吗? 如果没有,请在调试版中加载主活动中的库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM