diff --git a/pkg/proc/threads.go b/pkg/proc/threads.go index c9dc008ad4a9625b9bec783e89b653851ec0de80..b5c12df01d35490a08b456df8600878282ea9463 100644 --- a/pkg/proc/threads.go +++ b/pkg/proc/threads.go @@ -250,10 +250,11 @@ func next(dbp Process, stepInto bool) error { // this frame and on the return frame. bp.Cond = sameOrRetFrameCond } - } else { - return err } + // Return address could be wrong, if we are unable to set a breakpoint + // there it's ok. } + if bp, _, _ := curthread.Breakpoint(); bp == nil { curthread.SetCurrentBreakpoint() } diff --git a/pkg/terminal/command_test.go b/pkg/terminal/command_test.go index 66aeaa9349c846782b5b47442dfb183fcdafa5e6..b39bb6ad3ad7fabf925ee7070603e97272237d20 100644 --- a/pkg/terminal/command_test.go +++ b/pkg/terminal/command_test.go @@ -216,7 +216,7 @@ func TestExecuteFile(t *testing.T) { func TestIssue354(t *testing.T) { printStack([]api.Stackframe{}, "") - printStack([]api.Stackframe{{api.Location{PC: 0, File: "irrelevant.go", Line: 10, Function: nil}, nil, nil, 0, nil}}, "") + printStack([]api.Stackframe{{api.Location{PC: 0, File: "irrelevant.go", Line: 10, Function: nil}, nil, nil, 0, ""}}, "") } func TestIssue411(t *testing.T) {