github.com/cnboonhan/delve@v0.0.0-20230908061759-363f2388c2fb/pkg/proc/native/registers_windows.go (about)

     1  package native
     2  
     3  import "github.com/go-delve/delve/pkg/dwarf/op"
     4  
     5  // SetPC sets the RIP register to the value specified by `pc`.
     6  func (thread *nativeThread) setPC(pc uint64) error {
     7  	context := newContext()
     8  	context.SetFlags(_CONTEXT_ALL)
     9  
    10  	err := thread.getContext(context)
    11  	if err != nil {
    12  		return err
    13  	}
    14  
    15  	context.SetPC(pc)
    16  
    17  	return thread.setContext(context)
    18  }
    19  
    20  // SetReg changes the value of the specified register.
    21  func (thread *nativeThread) SetReg(regNum uint64, reg *op.DwarfRegister) error {
    22  	context := newContext()
    23  	context.SetFlags(_CONTEXT_ALL)
    24  	err := thread.getContext(context)
    25  	if err != nil {
    26  		return err
    27  	}
    28  
    29  	err = context.SetReg(regNum, reg)
    30  	if err != nil {
    31  		return err
    32  	}
    33  
    34  	return thread.setContext(context)
    35  }