Example #1
0
func (a *Arch) RegDump(u uc.Unicorn) ([]RegVal, error) {
	regList := a.getRegList()
	if a.regEnums == nil {
		a.regEnums = make([]int, len(regList))
		for i, r := range regList {
			a.regEnums[i] = r.Enum
		}
	}
	regs, err := u.RegReadBatch(a.regEnums)
	if err != nil {
		return nil, err
	}
	ret := make([]RegVal, len(regList))
	for i, r := range regList {
		ret[i] = RegVal{r, regs[i]}
	}
	return ret, nil
}