From 59beb7b4428fe36d275691241ed9b62d747a974c Mon Sep 17 00:00:00 2001 From: aarzilli Date: Tue, 8 Mar 2016 18:28:55 +0100 Subject: [PATCH] debugger: Allow disassembly even if the scope can not be converted It is sometimes impossible to convert an EvalScope immediately after starting the program but disassembly can still proceed. --- service/debugger/debugger.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/service/debugger/debugger.go b/service/debugger/debugger.go index 6b2b4fd5..14f8de0e 100644 --- a/service/debugger/debugger.go +++ b/service/debugger/debugger.go @@ -762,20 +762,20 @@ func (d *Debugger) Disassemble(scope api.EvalScope, startPC, endPC uint64, flavo endPC = fn.End } - s, err := d.process.ConvertEvalScope(scope.GoroutineID, scope.Frame) - if err != nil { - return nil, err - } - currentGoroutine := true - if scope.GoroutineID != -1 { - g, _ := s.Thread.GetG() - if g == nil || g.ID != scope.GoroutineID { - currentGoroutine = false + thread := d.process.CurrentThread + + if s, err := d.process.ConvertEvalScope(scope.GoroutineID, scope.Frame); err == nil { + thread = s.Thread + if scope.GoroutineID != -1 { + g, _ := s.Thread.GetG() + if g == nil || g.ID != scope.GoroutineID { + currentGoroutine = false + } } } - insts, err := s.Thread.Disassemble(startPC, endPC, currentGoroutine) + insts, err := thread.Disassemble(startPC, endPC, currentGoroutine) if err != nil { return nil, err }