首页 > 编程语言 >go汇编调试方法

go汇编调试方法

时间:2024-07-02 16:21:18浏览次数:13  
标签:FP 汇编 代码 go AX BX 调试

plan9基本知识:

首先我们学习如何用vscode+delve来调试go的plan9汇编代码.
首先我们用vscode配置好go的运行环境.能正确打印helloworld代码.
编写代码:
//main.go
package main

func main() {

	var aaa = Sum(2, 4)
	print(aaa)
}

func Sum(x, y int) int

//add.s
TEXT ·Sum(SB), $0-8
MOVQ x+0(FP), AX  // 将第一个参数 x 放入 AX
MOVQ y+8(FP), BX  // 将第二个参数 y 放入 BX
ADDQ BX, AX       // 将 BX 加到 AX
MOVQ AX, ret+16(FP)  // 将结果从 AX 移到返回值位置
RET               // 返回
之后我们sum这行在go代码里面打断点.单步调试就会发现delve调试器自动进入了汇编代码中.
这时候我们在watch里面可以输入寄存器名字这些来查看寄存器.
一些关键寄存器: RSP, RBP, RAX, RBX, RCX, RDX, RSI, RDI

标签:FP,汇编,代码,go,AX,BX,调试
From: https://www.cnblogs.com/zhangbo2008/p/18280079

相关文章

  • Windows服务器下配置Gogs HTTP自动跳转HTTPS
    在前面的文章中,介绍了如何在Windows服务器下搭建自己的git服务器,在文末介绍了开启HTTPS的方法。https://www.cnblogs.com/zhaotianff/p/17887191.html 但是开启https后,无法使用http访问了,所以需要urlrewrite,找了一圈,发现网上的教程都是Linux下基于Nginx的。 通过尝试,找到......
  • 基于SpringBoot+Vue邮件过滤系统设计和实现(源码+LW+调试文档+讲解等)
    ......
  • 汇编语言------内存段
    分段内存模型:将内存划分为几个独立的区域,每个区域称为段,通过段寄存器中的指针来引用。每个段都被用来保存某种特殊的数据。Datasegment:数据段,主要用来保存声明的变量、常量等等。用.data和.bss表示。Codesegment:代码段,主要用来保存指令代码。用.text表示。Stacksegment......
  • go语言之map取值
    packagemainimport("fmt")funcmain(){//定义一个maptemp_dict:=make(map[string]string)temp_dict["A"]="A__value"//1获取某一个key的值//1.1两个返回值r1_value,r1_exisit:=temp_dict["A"]......
  • go中实现日志级别与切割,日志配置热生效,pprof的技术解析
    引言在线上分布式系统和微服务架构中,日志记录是排查问题、调试程序和监控服务运行状态的重要手段。合理设置日志级别,可以帮助开发和运维人员有效地获取所需信息。然而,在实际运行中,常常需要在不重启服务的情况下动态调整日志级别,以适应不同的调试需求和运行环境。本文基于g......
  • 图神经网络版本的Kolmogorov Arnold(KAN)代码实现和效果对比
    KolmogorovArnoldNetworks(KAN)最近作为MLP的替代而流行起来,KANs使用Kolmogorov-Arnold表示定理的属性,该定理允许神经网络的激活函数在边缘上执行,这使得激活函数“可学习”并改进它们。目前我们看到有很多使用KAN替代MLP的实验,但是目前来说对于图神经网络来说还没有类似的实验......
  • BPI-M4 Berry 蓝牙调试
    通过命令行连接蓝牙1、首先,确定设备是否有蓝牙设备。输入hciconfig 如果镜像没有则使用下面命令进行安装sudoaptinstallbluez 2、可以看到有一个hci0的蓝牙设备,接下来就开始连接其他蓝牙设备sudobluetoothctlpoweron#打开蓝牙网卡devices#列出......
  • 云原生周刊:Argo Rollouts 支持 Kubernetes Gateway API 1.0 | 2024.7.1
    开源项目KubetoolsRecommenderSystemKubetoolsRecommenderSystem(Krs)是一个基于GenAI的工具,用于帮助管理和优化Kubernetes集群。buoybuoy是Kubernetes的声明式TUI仪表板。你可以在JSON文件中定义仪表板,它将从Kubernetes集群中获取信息并构建仪表板,以便在......
  • BPI-M4 Berry在windows系统下连接串口调试
    串口线我手头的串口线是这样的,包含如下四个针脚:VCC、GND、TX、RX。串口针脚说明:其他的串口线可能不止四根线,而且杜邦线的颜色也不一定和我的一样。请看清楚接口标注,按照下面介绍,将其接到板子上对应的接口板子串口GNDGNDTXDRXDRXDTXD......
  • BPI-M4 Berry在windows系统下连接串口调试
    串口线我手头的串口线是这样的,包含如下四个针脚:VCC、GND、TX、RX。串口针脚说明:其他的串口线可能不止四根线,而且杜邦线的颜色也不一定和我的一样。请看清楚接口标注,按照下面介绍,将其接到板子上对应的接口板子串口GNDGNDTXDRXDRXDTXD ......