我对调试器感到困惑。它似乎暂停了应用程序并为某些断点而不是其他断点显示调试窗口。它仍然会勾选断点,但不会暂停应用程序。当我打开调试窗口时,我看不到任何框架,所以我无法查看变量。我看了很多文件,但他们没有解决我的问题。所以我想知道的是:
- 框架和线程的关系
- 断点在应用程序的不同位置或不同类中的工作方式是否不同?
最佳答案
好像Guide provided by Google 没有回答你的问题,我会添加一个额外的解释,希望它有帮助:
1- Frame与应用程序进程直接相关,可以由应用程序使用的多个线程组成,意味着只要应用程序进程启动并运行框架也可用。
但是这并不意味着您可以随时查看变量,变量窗口框架在调试器遇到断点后变得可用>.
2- 是的,要让调试器命中断点,应该满足一些条件。这是一个很长的列表,但这里是更重要的列表:
- 应用首先必须是可调试的,如果应用被定义为 不可调试(如发布版本),则调试器将无法工作。
- 代码必须可读,因此对于调试器来说是可执行的,这意味着混淆或篡改的代码不会导致调试器在断点处停止。
- 代码必须可执行,这意味着不可执行的代码(如变量声明)或无法访问的代码不会导致调试器停止。
P.S:当然,这些只是少数几个主要原因,还有许多其他原因,例如即时运行,可以使一段代码不可调试。
关于java - android调试器-框架和线程之间的关系是什么?断点在不同地方的工作方式是否不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50093961/