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表示当前程序计数器的值,也就是当前指令的地址。
相关推荐
无小道5 小时前
c++-引用(包括完美转发,移动构造,万能引用)
c语言·开发语言·汇编·c++
2401_8582861111 小时前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb
liulilittle2 天前
C++ i386/AMD64平台汇编指令对齐长度获取实现
c语言·开发语言·汇编·c++
工业互联网专业2 天前
汇编与接口技术:8259中断实验
汇编·单片机·嵌入式硬件·8259中断实验
small_wh1te_coder2 天前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
Ronin-Lotus14 天前
微处理器原理与应用篇---ARM常见汇编指令
汇编·arm开发·微处理原理与应用
永夜的黎明17 天前
【二进制安全作业】250616课上作业1-栈溢出漏洞利用
c语言·汇编·安全
Geometry Fu20 天前
物联网控制技术 知识点总结 第三章 汇编语言 第四章 C51语言
汇编·物联网·51单片机
半桔20 天前
【Linux手册】进程的状态:从创建到消亡的“生命百态”
linux·运维·服务器·汇编·深度学习·面试
一条叫做nemo的鱼23 天前
从汇编的角度揭开C++ this指针的神秘面纱(下)
java·汇编·c++·函数调用·参数传递