android - 从 JDB 调试 Android 应用程序(在 Emacs 中)

标签 android emacs jdb

好的,所以我一直在尝试从 jdb 调试 Android 应用程序。

我运行模拟器,安装应用程序,运行 ddms,然后启动应用程序,然后在 DDMS 中选择它。现在我使用以下命令运行 jdb

jdb -attach localhost:8700 -sourcepath /project-root/src

jdb能够附加到进程上,然后是一个命令如

stop in com.android.helloworld.onClick

效果很好。

但是,当我在 Emacs 中使用 C-x 空格键时,它会运行带有行号的命令,

stop at com.android.helloworld:22

我得到了这个输出

Unable to set breakpoint com.android.helloworld:22 : No code at line 22 in com.android.helloworld

我已检查行号是否正确,并尝试传递文件名本身,但无济于事。有什么想法吗?

最佳答案

Android SDK 附带一个 android.el,其中包含“android-jdb”命令。这将为您正确设置键绑定(bind)。 (至少,我认为它会,我上次使用它时没有尝试那些键绑定(bind)。)

作为奖励,如果您从 bzr trunk 试用 CEDET,它包括 android 支持。在完成基本的 CEDET 设置后(请参阅 cedet.info 了解 android 详细信息),它可以方便地快速启动调试器并使用调试器连接到您的设备。它还支持其他一些有趣的东西。

关于android - 从 JDB 调试 Android 应用程序(在 Emacs 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379272/

相关文章:

android - 如何将 backgroundTint 应用于 API 21 的 ViewGroup?

Android数据库连接最佳实践

shell - 在 Emacs 中分析 shell 命令

java - 调试Java获取对象和局部变量列表

java - 使用带有源的 jar 作为 jdb 的源?

javascript - 如何在 MacBook、PC、IOS 和 android 中通过 javascript 代码检测访问者浏览器

android - 读取 JSON 数据时出现 MalformedChunkCodingException

emacs - 如何使用 C-x k 杀死在服务器模式下打开的 Emacs 缓冲区?

emacs - Lisp 中 while/break 的函数式编程替代方案

java - JDB——如何在运行程序之前获取方法列表?