diff --git a/terminal/command.go b/terminal/command.go index 4545cc1f..598f242a 100644 --- a/terminal/command.go +++ b/terminal/command.go @@ -819,6 +819,9 @@ func (c *Commands) sourceCommand(t *Term, args string) error { } func digits(n int) int { + if n <= 0 { + return 1 + } return int(math.Floor(math.Log10(float64(n)))) + 1 } diff --git a/terminal/command_test.go b/terminal/command_test.go index a4b9a246..2f376308 100644 --- a/terminal/command_test.go +++ b/terminal/command_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/derekparker/delve/proc/test" + "github.com/derekparker/delve/service/api" ) func TestCommandDefault(t *testing.T) { @@ -98,3 +99,8 @@ func TestExecuteFile(t *testing.T) { t.Fatalf("Wrong counts break: %d trace: %d\n", breakCount, traceCount) } } + +func TestIssue354(t *testing.T) { + printStack([]api.Stackframe{ }, "") + printStack([]api.Stackframe{{api.Location{PC: 0, File: "irrelevant.go", Line: 10, Function: nil}, nil, nil}}, "") +}