mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-22 09:29:38 +00:00
Fixed exception details not being displayed
Make sure the exception scoperef is allocated before locals are retrieved.
This commit is contained in:
@@ -800,11 +800,11 @@ class AndroidDebugSession extends DebugSession {
|
||||
var last_exception = thread.paused.last_exception;
|
||||
if (last_exception && !last_exception.objvar) {
|
||||
// retrieve the exception object
|
||||
this.dbgr.getExceptionLocal(last_exception.exception, {response,scopes,last_exception,thread,args})
|
||||
.then((ex_local,x) => {
|
||||
var {response,scopes,last_exception,thread,args} = x;
|
||||
last_exception.objvar = ex_local;
|
||||
thread.allocateExceptionScopeReference(args.frameId);
|
||||
this.dbgr.getExceptionLocal(last_exception.exception, {response,scopes,last_exception})
|
||||
.then((ex_local,x) => {
|
||||
var {response,scopes,last_exception} = x;
|
||||
last_exception.objvar = ex_local;
|
||||
// put the exception first - otherwise it can get lost if there's a lot of locals
|
||||
scopes.unshift(new Scope("Exception: "+ex_local.type.typename, last_exception.scopeRef, false));
|
||||
this.sendResponse(response);
|
||||
@@ -956,6 +956,7 @@ class AndroidDebugSession extends DebugSession {
|
||||
var last_exception = {
|
||||
exception: e.event.exception,
|
||||
threadid: e.throwlocation.threadid,
|
||||
frameId: null, // allocated during scopesRequest
|
||||
scopeRef: null, // allocated during scopesRequest
|
||||
};
|
||||
this.reportStoppedEvent("exception", e.throwlocation, last_exception);
|
||||
|
||||
@@ -39,6 +39,8 @@ class AndroidThread {
|
||||
}
|
||||
|
||||
allocateExceptionScopeReference(frameId) {
|
||||
if (!this.paused) return;
|
||||
if (!this.paused.last_exception) return;
|
||||
this.paused.last_exception.frameId = frameId;
|
||||
this.paused.last_exception.scopeRef = frameId + 1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user