gdb调试时查看汇编代码

在gdb中查看汇编代码,可以使用display命令或x命令。

以下是一个示例程序,我们以它为例来演示如何在gdb中查看汇编代码。

cpp 复制代码
#include <stdio.h>  
  
int main() {  
    int a = 10;  
    int b = 20;  
    int c = a + b;  
    printf("c = %d\n", c);  
    return 0;  
}

我们使用gcc编译生成可执行文件。

bash 复制代码
gcc -g -o program program.c

然后,我们使用gdb启动程序。

bash 复制代码
gdb program
复制代码
在gdb中,我们可以使用display命令查看汇编代码。以下是一个示例命令序列:
bash 复制代码
break main  
run  
display /i $pc

解释一下:

  • break main:在main函数入口处设置一个断点,以便我们可以在这里开始执行程序。
  • run:启动程序并运行到断点处。
  • display /i $pc:显示当前指令的汇编代码。其中,/i表示以汇编代码格式显示,$pc表示当前程序的计数器的值,也就是当前指令的地址。

在gdb中,可以使用x命令查看内存内容。以下是一个示例命令序列:

bash 复制代码
break *0x400510  
run  
x/x $pc

解释一下:

  • break *0x400510:在地址0x400510处设置一个断点,以便我们可以在这里开始执行程序。这个地址是main函数的入口地址。
  • run:启动程序并运行到断点处。
  • x/x $pc:使用x命令查看当前指令的地址和汇编代码。其中,/x表示以十六进制格式显示,$pc表示当前程序计数器的值,也就是当前指令的地址。
相关推荐
DONG91312 小时前
Python 中的可迭代、迭代器与生成器——从协议到实现再到最佳实践
开发语言·汇编·数据结构·python·算法·青少年编程·排序算法
embrace993 天前
【C语言学习】scanf函数
c语言·开发语言·汇编·学习·青少年编程·c#·编辑器
麦兜*3 天前
【算法】十大排序算法超深度解析,从数学原理到汇编级优化,涵盖 15个核心维度
java·汇编·jvm·算法·spring cloud·ai·排序算法
会掉头发4 天前
x86_64汇编
汇编
CHANG_THE_WORLD4 天前
NEG指令说明
汇编·逆向·neg
南玖yy9 天前
Linux 桌面市场份额突破 5%:开源生态的里程碑与未来启示
linux·运维·服务器·汇编·科技·开源·gradle
GeekMax9 天前
(笔记)U-boot 2012.10 armv7启动汇编解析
汇编
南玖yy11 天前
Linux权限管理:从“Permission denied“到系统安全大师
linux·运维·汇编·后端·架构·系统安全·策略模式
Kira Skyler12 天前
c++,从汇编角度看lambda
汇编·c++
暗流者12 天前
学习pwn需要的基本汇编语言知识
汇编·学习·网络安全·pwn