• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Golang util.DecodeULEB128函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/derekparker/delve/dwarf/util.DecodeULEB128函数的典型用法代码示例。如果您正苦于以下问题:Golang DecodeULEB128函数的具体用法?Golang DecodeULEB128怎么用?Golang DecodeULEB128使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了DecodeULEB128函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: defcfa

func defcfa(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)
	offset, _ := util.DecodeULEB128(frame.buf)

	frame.cfa.register = reg
	frame.cfa.offset = int64(offset)
}
开发者ID:RJAugust,项目名称:delve,代码行数:7,代码来源:table.go


示例2: parseCIE

func parseCIE(ctx *parseContext) parsefunc {
	data := ctx.buf.Next(int(ctx.length))
	buf := bytes.NewBuffer(data)
	// parse version
	ctx.common.Version = data[0]

	// parse augmentation
	ctx.common.Augmentation, _ = util.ParseString(buf)

	// parse code alignment factor
	ctx.common.CodeAlignmentFactor, _ = util.DecodeULEB128(buf)

	// parse data alignment factor
	ctx.common.DataAlignmentFactor, _ = util.DecodeSLEB128(buf)

	// parse return address register
	ctx.common.ReturnAddressRegister, _ = util.DecodeULEB128(buf)

	// parse initial instructions
	// The rest of this entry consists of the instructions
	// so we can just grab all of the data from the buffer
	// cursor to length.
	ctx.common.InitialInstructions = buf.Bytes() //ctx.buf.Next(int(ctx.length))
	ctx.length = 0

	return parselength
}
开发者ID:dustinevan,项目名称:delve,代码行数:27,代码来源:parser.go


示例3: valoffset

func valoffset(frame *FrameContext) {
	var (
		reg, _    = util.DecodeULEB128(frame.buf)
		offset, _ = util.DecodeULEB128(frame.buf)
	)

	frame.regs[reg] = DWRule{offset: int64(offset), rule: rule_valoffset}
}
开发者ID:RJAugust,项目名称:delve,代码行数:8,代码来源:table.go


示例4: offsetextended

func offsetextended(frame *FrameContext) {
	var (
		reg, _    = util.DecodeULEB128(frame.buf)
		offset, _ = util.DecodeULEB128(frame.buf)
	)

	frame.regs[reg] = DWRule{offset: int64(offset) * frame.dataAlignment, rule: rule_offset}
}
开发者ID:RJAugust,项目名称:delve,代码行数:8,代码来源:table.go


示例5: valexpression

func valexpression(frame *FrameContext) {
	var (
		reg, _ = util.DecodeULEB128(frame.buf)
		l, _   = util.DecodeULEB128(frame.buf)
		expr   = frame.buf.Next(int(l))
	)

	frame.regs[reg] = DWRule{rule: rule_valexpression, expression: expr}
}
开发者ID:RJAugust,项目名称:delve,代码行数:9,代码来源:table.go


示例6: definefile

func definefile(sm *StateMachine, buf *bytes.Buffer) {
	var (
		_, _ = util.ParseString(buf)
		_, _ = util.DecodeULEB128(buf)
		_, _ = util.DecodeULEB128(buf)
		_, _ = util.DecodeULEB128(buf)
	)

	// Don't do anything here yet.
}
开发者ID:rdterner,项目名称:delve,代码行数:10,代码来源:state_machine.go


示例7: defcfasf

func defcfasf(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)
	offset, _ := util.DecodeSLEB128(frame.buf)

	frame.cfa.register = reg
	frame.cfa.offset = offset * frame.dataAlignment
}
开发者ID:RJAugust,项目名称:delve,代码行数:7,代码来源:table.go


示例8: valoffsetsf

func valoffsetsf(frame *FrameContext) {
	var (
		reg, _    = util.DecodeULEB128(frame.buf)
		offset, _ = util.DecodeSLEB128(frame.buf)
	)

	frame.regs[reg] = DWRule{offset: offset * frame.dataAlignment, rule: rule_valoffset}
}
开发者ID:RJAugust,项目名称:delve,代码行数:8,代码来源:table.go


示例9: parseFileEntries

func parseFileEntries(info *DebugLineInfo, buf *bytes.Buffer) {
	for {
		entry := new(FileEntry)

		name, _ := util.ParseString(buf)
		if name == "" {
			break
		}

		entry.Name = name
		entry.DirIdx, _ = util.DecodeULEB128(buf)
		entry.LastModTime, _ = util.DecodeULEB128(buf)
		entry.Length, _ = util.DecodeULEB128(buf)

		info.FileNames = append(info.FileNames, entry)
	}
}
开发者ID:no2key,项目名称:delve,代码行数:17,代码来源:line_parser.go


示例10: defcfaexpression

func defcfaexpression(frame *FrameContext) {
	var (
		l, _ = util.DecodeULEB128(frame.buf)
		expr = frame.buf.Next(int(l))
	)

	frame.cfa.expression = expr
	frame.cfa.rule = rule_expression
}
开发者ID:RJAugust,项目名称:delve,代码行数:9,代码来源:table.go


示例11: restoreextended

func restoreextended(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)

	oldrule, ok := frame.initialRegs[reg]
	if ok {
		frame.regs[reg] = DWRule{offset: oldrule.offset, rule: rule_offset}
	} else {
		frame.regs[reg] = DWRule{rule: rule_undefined}
	}
}
开发者ID:RJAugust,项目名称:delve,代码行数:10,代码来源:table.go


示例12: execExtendedOpcode

func execExtendedOpcode(sm *StateMachine, instr byte, buf *bytes.Buffer) {
	_, _ = util.DecodeULEB128(buf)
	b, _ := buf.ReadByte()
	fn, ok := extendedopcodes[b]
	if !ok {
		panic(fmt.Sprintf("Encountered unknown extended opcode %#v\n", b))
	}
	sm.lastWasStandard = false

	fn(sm, buf)
}
开发者ID:rdterner,项目名称:delve,代码行数:11,代码来源:state_machine.go


示例13: offset

func offset(frame *FrameContext) {
	b, err := frame.buf.ReadByte()
	if err != nil {
		panic(err)
	}

	var (
		reg       = b & low_6_offset
		offset, _ = util.DecodeULEB128(frame.buf)
	)

	frame.regs[uint64(reg)] = DWRule{offset: int64(offset) * frame.dataAlignment, rule: rule_offset}
}
开发者ID:RJAugust,项目名称:delve,代码行数:13,代码来源:table.go


示例14: samevalue

func samevalue(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)
	frame.regs[reg] = DWRule{rule: rule_sameval}
}
开发者ID:RJAugust,项目名称:delve,代码行数:4,代码来源:table.go


示例15: advancepc

func advancepc(sm *StateMachine, buf *bytes.Buffer) {
	addr, _ := util.DecodeULEB128(buf)
	sm.address += addr * uint64(sm.dbl.Prologue.MinInstrLength)
}
开发者ID:rdterner,项目名称:delve,代码行数:4,代码来源:state_machine.go


示例16: defcfaoffset

func defcfaoffset(frame *FrameContext) {
	offset, _ := util.DecodeULEB128(frame.buf)
	frame.cfa.offset = int64(offset)
}
开发者ID:RJAugust,项目名称:delve,代码行数:4,代码来源:table.go


示例17: defcfaregister

func defcfaregister(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)
	frame.cfa.register = reg
}
开发者ID:RJAugust,项目名称:delve,代码行数:4,代码来源:table.go


示例18: setfile

func setfile(sm *StateMachine, buf *bytes.Buffer) {
	i, _ := util.DecodeULEB128(buf)
	sm.file = sm.dbl.FileNames[i-1].Name
}
开发者ID:rdterner,项目名称:delve,代码行数:4,代码来源:state_machine.go


示例19: setcolumn

func setcolumn(sm *StateMachine, buf *bytes.Buffer) {
	c, _ := util.DecodeULEB128(buf)
	sm.column = uint(c)
}
开发者ID:rdterner,项目名称:delve,代码行数:4,代码来源:state_machine.go


示例20: undefined

func undefined(frame *FrameContext) {
	reg, _ := util.DecodeULEB128(frame.buf)
	frame.regs[reg] = DWRule{rule: rule_undefined}
}
开发者ID:RJAugust,项目名称:delve,代码行数:4,代码来源:table.go



注:本文中的github.com/derekparker/delve/dwarf/util.DecodeULEB128函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang proc.Launch函数代码示例发布时间:2022-05-23
下一篇:
Golang reader.Reader类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap