当前位置: 首页 > news >正文

gdb调试时查看汇编代码

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

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

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

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

gcc -g -o program program.c

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

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

解释一下:

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

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

break *0x400510  
run  
x/x $pc

解释一下:

  • break *0x400510:在地址0x400510处设置一个断点,以便我们可以在这里开始执行程序。这个地址是main函数的入口地址。
  • run:启动程序并运行到断点处。
  • x/x $pc:使用x命令查看当前指令的地址和汇编代码。其中,/x表示以十六进制格式显示,$pc表示当前程序计数器的值,也就是当前指令的地址。
http://www.lryc.cn/news/106098.html

相关文章:

  • 小研究 - JVM GC 对 IMS HSS 延迟分析(二)
  • eNSP 路由器启动时一直显示 # 号的解决办法
  • Kotlin~Facade
  • 服务配置文件/var/lib/systemd与/etc/systemd/
  • 华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(一)
  • 【牛客网】二叉搜索树与双向链表
  • Oracle免费在线编程:Oracle APEX
  • C#+WPF上位机开发(模块化+反应式)
  • 【LeetCode 算法】Card Flipping Game 翻转卡片游戏-阅读题
  • 【leetcode】138.复制带随机指针的链表
  • svn工具使用
  • SpringBoot项目使用MyBatisX+Apifox IDEA 插件快速开发
  • Redis数据结构
  • 解密Redis:应对面试中的缓存相关问题
  • 读取application-dev.properties的中文乱码【bug】
  • Linux(centos7)如何实现配置iscsi存储多路径 及DM-Multipath的配置文件概述
  • DK7 vs JDK8 vs JDK11特性和功能的对比
  • 你觉得企业为什么需要数据分析?
  • SVN学习
  • vim怎么使用,vim使用教程,vimtutor怎么切换中文 汉化
  • [golang gin框架] 43.Gin商城项目-微服务实战之后台Rbac微服务之管理员的增删改查以及管理员和角色关联
  • 2023-07-31力扣每日一题
  • 接口自动化报告,生成本地服务并自动打开时失败
  • Git 的基本概念和使用方式
  • 【JVM】(三) 深入理解JVM垃圾回收机制(GC)
  • Flink CEP(二) 运行源码解析
  • 剑指Offer-学习计划(四)双指针(下)
  • 深度学习——常见注意力机制
  • Python 进阶(七):高级文件操作(shutil 模块)
  • 保留网络:大型语言模型的Transformer继任者