我正在配置 emacs 来调试 android 应用程序。我的问题是因为我将 jdb 附加到 DDMS,所以我无法设置正确的类路径(当我尝试将 -classpath 和 -attach 设置在一起时,jdb 不会启动)。所以 jdb 实际上是盲目的——没有类的入口点,没有交互式调试。将调试器附加到 ddms 时如何指定类路径?

最佳答案

根据 JDB 手册页,“-classpath”是“转发给调试进程的选项”之一。换句话说,它不会告诉 jdb 在哪里可以找到东西,而是告诉正在调试的应用程序在哪里可以找到东西。

由于您正在连接到正在运行的进程,因此这没有任何意义。

调试过程所需的所有信息都存储在设备上的 DEX 文件中;你不需要主机端的 jar/dex 文件来让 jdb 使用。唯一不起作用的是“列表”,但是如果您坐在 emacs 中,大概不需要那个。

我已经成功地使用 jdb 来执行各种调试任务。我最常忘记的事情是您必须指定完全限定的类名(例如 java.lang.String 而不仅仅是 String)。如果您这样做了,但仍然失败,请在此处粘贴示例 jdb 调试 session 。

10-08 09:13