java 调试 attach,使用“ jdb -attach”(或jswat)调试android应用

我在模拟器上将独立的Java调试器与android应用程序一起使用时遇到麻烦。显然,可以通过执行以下步骤来利用任何具有远程功能的Java调试器(例如jdb(或jswat))(据我在这里和那里阅读后的理解):

1)打开模拟器,在模拟器上安装您的应用程序(adb install)

2)打开dalvik服务器(ddms)

3)在模拟器上,运行“ DevTools”应用程序->“开发设置”->选择要调试的应用程序,启用“等待调试器”标志

4)再次在模拟器中运行您的应用程序;它将阻塞,等待调试器附加,并且dalvik将显示带有“红色错误”标记的新进程。

5)在dalvik上,选择红色标记的进程;其调试端口因此转发到localhost:8700

6)将调试器挂接到localhost:8700。使用jdb,您必须运行“ jdb -attach 8700”

启动调试器后,仿真器上的应用程序便会解除阻止。因此,该应用似乎已正确检测到调试器,因此可以免费运行。

但是,要点是它“免费运行”,也就是说,它不会等待调试器发出“运行”命令。因此,我没有机会设置任何断点。

遵循1的提示,我尝试在应用程序的开头放置等待循环,希望我有时间设置断点。当我尝试设置断点时,jdb说“推迟断点XXX.YYY。它将在类加载后设置。”,因为该应用程序尚未运行。但是,如果我随后发出“运行”命令,则答案是“没有任何暂停。”,因为该应用程序已经在运行(确实如此)。

使用jswat,您不会看到这些消息,但最终结果是相同的:-(

不用说,“ jdb -attach”对于在本​​地主机上运行的非Android Java应用程序也能正常工作。

有什么提示(“请使用日食”除外)?

我只是在任何地方都缺少愚蠢的细节吗?

该应用程序是一个HelloWorld,构建命令是“ ant debug”。

先感谢您。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值