java - 如何在 Android 上以编程方式创建断点

标签 java android debugging breakpoints

在 C# 中我可以写:

if(Debugger.IsAttached)
    Debugger.Break();

当程序没有被调试时,这没有效果。附加调试器后,它的行为就像一个永远无法关闭的断点。如何在 Android 上实现类似的效果?

或者我根本不应该关注断点。我真正想要的是在常规使用中没有任何后果(将向用户显示一般错误消息),但在开发人员开始查看它时让错误来源变得明显。我试过断言,但它是一个子项目,大部分时间都被编译为发布风格,我不能指望有人记得将它切换到调试。

最佳答案

我认为 Debug.isDebuggerConnected() 就是您要查找的内容。这将返回 true 仅当应用程序启动时附加了调试器和 false 否则,无论 build typeflavor。不幸的是,我不认为您可以通过编程方式停止执行,但是使用上述指令您应该能够显示错误消息或抛出异常。就个人而言,我正在考虑这样的事情:

if (Debug.isDebuggerConnected()) {
    // throw an exception for the developer with a detailed message
} else {
    // show the general error message to the user with a dialog/toast    
}

关于java - 如何在 Android 上以编程方式创建断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41141550/

相关文章:

java - JHipster多个数据源导致JdbcSQLSyntaxErrorException : Sequence "SEQUENCEGENERATOR" not found

java - 将选定的 ListView 项目显示到 TextView 中

java - 使用可比较接口(interface)进行对象排序

java - 如何从url获取pdf到java代码中?

java - 修改函数中的类变量和返回值时出现奇怪的行为

java - 如何将 UTC 时间转换为其他时区 ("CST","IST")

android - 在android中,如何在类文件中以编程方式设置抽屉导航标题图像和名称?

python - 如何调试使用基本身份验证处理程序的 urllib2 请求

java - 我可以强制 Junit 调试器使用 Eclipse IDE 通过自定义测试用例方法开始调试执行吗?

debugging - Linux 内核的线程感知 gdb