例如,flash平台提供了执行该作业的flash.debugger.enterDebugger()API调用:
if (some_cond())
{
...
}
else
{
enterDebugger();
}
在这种情况下,如果some_cond()计算结果为false并且我们处于调试会话中(如果我们处于正常会话中则不执行任何操作),则执行将在调用enterDebugger的行停止,给调试器的控制,好像在该行设置了一个断点。
我看过android.os包,却发现没什么好看的。抛出异常会将控件提供给调试器,但是在抛出异常的位置无法恢复代码执行。
答案 0 :(得分:2)
Java调试支持挂起异常。你可以写:
void enterDebugger() {
try {
throw new DebugException();
}
catch (DebugException e) { //no-op
}
}
并设置IDE以挂起类型为DebugException的异常。
答案 1 :(得分:1)
if (someCond()) { .... }
else {
android.os.Debug.waitForDebugger();
}
请参阅android.os.Debug。