コード例 #1
0
ファイル: debugger.go プロジェクト: ulrichSchreiner/carpo
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
}