pkg/terminal: Ignore existing breakpoints for continue until (#2624)

Ignore existing breakpoints when using the continue command to continue
to a specific location such as `continue main.main`. The point of this
command is to continue to a specific location, so if there is already a
breakpoint set there there should be no error returned, just continue
until we hit the breakpoint already set in that location.
This commit is contained in:
Derek Parker 2021-07-28 04:13:32 -07:00 committed by GitHub
parent 56731bd88a
commit cb73ef8f83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

@ -1412,7 +1412,9 @@ func (c *Commands) cont(t *Term, ctx callContext, args string) error {
if args != "" {
tmp, err := setBreakpoint(t, ctx, false, args)
if err != nil {
return err
if !strings.Contains(err.Error(), "Breakpoint exists") {
return err
}
}
defer func() {
for _, bp := range tmp {

@ -1130,6 +1130,18 @@ func TestContinueUntil(t *testing.T) {
})
}
func TestContinueUntilExistingBreakpoint(t *testing.T) {
withTestTerminal("continuetestprog", t, func(term *FakeTerminal) {
term.MustExec("break main.main")
if runtime.GOARCH != "386" {
listIsAt(t, term, "continue main.main", 16, -1, -1)
} else {
listIsAt(t, term, "continue main.main", 17, -1, -1)
}
listIsAt(t, term, "continue main.sayhi", 12, -1, -1)
})
}
func TestPrintFormat(t *testing.T) {
withTestTerminal("testvariables2", t, func(term *FakeTerminal) {
term.MustExec("continue")