java - android调试器-框架和线程之间的关系是什么?断点在不同地方的工作方式是否不同?

标签 java android android-debug

我对调试器感到困惑。它似乎暂停了应用程序并为某些断点而不是其他断点显示调试窗口。它仍然会勾选断点,但不会暂停应用程序。当我打开调试窗口时,我看不到任何框架,所以我无法查看变量。我看了很多文件,但他们没有解决我的问题。所以我想知道的是:

  • 框架和线程的关系
  • 断点在应用程序的不同位置或不同类中的工作方式是否不同?

最佳答案

好像Guide provided by Google 没有回答你的问题,我会添加一个额外的解释,希望它有帮助:

1- Frame与应用程序进程直接相关,可以由应用程序使用的多个线程组成,意味着只要应用程序进程启动并运行框架也可用。

但是这并不意味着您可以随时查看变量,变量窗口框架在调试器遇到断点后变得可用>.

2- 是的,要让调试器命中断点,应该满足一些条件。这是一个很长的列表,但这里是更重要的列表:

  1. 应用首先必须是可调试的,如果应用被定义为 不可调试(如发布版本),则调试器将无法工作。
  2. 代码必须可读,因此对于调试器来说是可执行的,这意味着混淆或篡改的代码不会导致调试器在断点处停止。
  3. 代码必须可执行,这意味着不可执行的代码(如变量声明)或无法访问的代码不会导致调试器停止。

P.S:当然,这些只是少数几个主要原因,还有许多其他原因,例如即时运行,可以使一段代码不可调试

关于java - android调试器-框架和线程之间的关系是什么?断点在不同地方的工作方式是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50093961/

相关文章:

android alarmmanager 2016 重启后发出警报

android - GIGABYTE 的 USB 供应商 ID

android - 如何使用 Java 10 获取 SHA 1 证书?

java - 使用和不使用特定类路径文件的 JUnit 测试

java - DialogInterface 与 View OnClickListeners

android - 在上下文操作栏中,如何通过使选项卡不可点击/滑动来禁用滑动选项卡?

java - 找不到局部变量 'ac'

java - Spring NamedParameterJDBCTemplate 重用Prepared Statements

java - 通用语法符号 <~>

java - 如何一键停止两个可运行程序?