func (wks *workspace) addBreakpoint(cmd *breakpoint_cmd, gdb *gdbmi.GDB) error { bp := new(breakpoint_data) if err := json.Unmarshal(cmd.Data, bp); err != nil { return err } fs := wks.filesystems[bp.Filesystem] abspath := fs.Abs(bp.Source) if gdb.Running { _, err := gdb.Exec_interrupt(false, nil) if err != nil { return err } defer gdb.Exec_continue(true, false, nil) } bpkt, err := gdb.Breakpoint(abspath, bp.Line) if err != nil { return nil } debuglogger.Infof("new breakpoint set: %+v", bpkt) return nil }