// Copyright (c) 2026 Petr BalvĂ­n (https://petrbalvin.org) // SPDX-License-Identifier: BSD-3-Clause //go:build linux && arm64 package debug import "fmt" // SetReg modifies a register value in the debuggee. func (s *Session) SetReg(name string, value uint64) error { regs, err := s.GetRegs() if err != nil { return err } switch name { case "x0": regs.X0 = value case "x1": regs.X1 = value case "x2": regs.X2 = value case "x3": regs.X3 = value case "x4": regs.X4 = value case "x5": regs.X5 = value case "x6": regs.X6 = value case "x7": regs.X7 = value case "x8": regs.X8 = value case "x9": regs.X9 = value case "x10": regs.X10 = value case "x11": regs.X11 = value case "x12": regs.X12 = value case "x13": regs.X13 = value case "x14": regs.X14 = value case "x15": regs.X15 = value case "x16": regs.X16 = value case "x17": regs.X17 = value case "x18": regs.X18 = value case "x19": regs.X19 = value case "x20": regs.X20 = value case "x21": regs.X21 = value case "x22": regs.X22 = value case "x23": regs.X23 = value case "x24": regs.X24 = value case "x25": regs.X25 = value case "x26": regs.X26 = value case "x27": regs.X27 = value case "x28": regs.X28 = value case "x29", "fp": regs.X29 = value case "x30", "lr": regs.X30 = value case "sp": regs.SP = value case "pc": regs.PC = value default: return fmt.Errorf("debug: unknown register %q", name) } return s.SetRegs(®s) }