Ensure hardware breakpoints are cleared upon exit

This commit is contained in:
Derek Parker 2015-01-30 15:33:56 -06:00
parent b0ba87e5e1
commit 5da2e02068

@ -2,13 +2,14 @@ package cli
import (
"fmt"
sys "golang.org/x/sys/unix"
"io"
"os"
"os/exec"
"os/signal"
"strings"
sys "golang.org/x/sys/unix"
"github.com/derekparker/delve/command"
"github.com/derekparker/delve/goreadline"
"github.com/derekparker/delve/proctl"
@ -98,6 +99,15 @@ func handleExit(dbp *proctl.DebuggedProcess, status int) {
}
answer := strings.TrimSuffix(*answerp, "\n")
for _, bp := range dbp.HWBreakPoints {
if bp == nil {
continue
}
if _, err := dbp.Clear(bp.Addr); err != nil {
fmt.Printf("Can't clear breakpoint @%x: %s\n", bp.Addr, err)
}
}
for pc := range dbp.BreakPoints {
if _, err := dbp.Clear(pc); err != nil {
fmt.Printf("Can't clear breakpoint @%x: %s\n", pc, err)