MCPcopy Create free account
hub / github.com/SeeFlowerX/stackplz / ParseMsg

Function ParseMsg

user/rpc/rpc.go:78–106  ·  view source on GitHub ↗
(payload []byte)

Source from the content-addressed store, hash-verified

76}
77
78func ParseMsg(payload []byte) (*BrkOptions, error) {
79 brk := new(BrkOptions)
80 brk_raw := new(BrkOptionsRaw)
81 err := json.Unmarshal(payload, brk_raw)
82 if err != nil {
83 return nil, err
84 }
85 brk.BrkPid = brk_raw.BrkPid
86 brk.BrkLen = brk_raw.BrkLen
87
88 switch brk_raw.BrkType {
89 case "r":
90 brk.BrkType = util.HW_BREAKPOINT_R
91 case "w":
92 brk.BrkType = util.HW_BREAKPOINT_W
93 case "x":
94 brk.BrkType = util.HW_BREAKPOINT_X
95 case "rw":
96 brk.BrkType = util.HW_BREAKPOINT_RW
97 default:
98 return nil, errors.New(fmt.Sprintf("breakpoint type:%s is not supported", brk_raw.BrkType))
99 }
100 addr, err := strconv.ParseUint(strings.TrimPrefix(brk_raw.BrkAddr, "0x"), 16, 64)
101 if err != nil {
102 return nil, errors.New(fmt.Sprintf("parse for %s failed, err:%v", brk_raw.BrkAddr, err))
103 }
104 brk.BrkAddr = addr
105 return brk, nil
106}
107
108func StartRpcServer(stopper chan os.Signal, rpcPath string) {
109 addr, err := net.ResolveTCPAddr("tcp4", rpcPath)

Callers 1

handleConnectionFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected