GDB之源码与汇编映射对应关系(十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中......】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.
更多原创,欢迎关注:Android系统攻城狮

1.前言

本篇目的:GDB之源码与汇编映射对应,查阅方便。

2.调试实例

<1>. test.cpp源码

cpp 复制代码
1 #include <cstdio>
2 
3 void test(){
4   printf("1111111111111111\n");
5 }
6 
7 int main(void) {
8   test();
9   return 0;
10 }

<2>.汇编代码与源码映射调试过程:test函数源码与汇编代码映射。

复制代码
(gdb) disa
disable      disassemble  
(gdb) disassemble /m test
Dump of assembler code for function _Z4testv:
3	void test(){
   0x0000000000001149 <+0>:	endbr64 
   0x000000000000114d <+4>:	push   %rbp
   0x000000000000114e <+5>:	mov    %rsp,%rbp

4	  printf("1111111111111111\n");
   0x0000000000001151 <+8>:	lea    0xeac(%rip),%rax        # 0x2004
   0x0000000000001158 <+15>:	mov    %rax,%rdi
   0x000000000000115b <+18>:	call   0x1050 <puts@plt>

5	}
   0x0000000000001160 <+23>:	nop
   0x0000000000001161 <+24>:	pop    %rbp
   0x0000000000001162 <+25>:	ret    

End of assembler dump.
(gdb)

<3>.查看某一行所对应的地址范围,比如第4行。

复制代码
 (gdb) i line 4
Line 4 of "test.cpp" starts at address 0x1151 <_Z4testv+8> and ends at 0x1160 <_Z4testv+23>

以上是 printf("1111111111111111\n");代码寻址语句:它的寻址范围: 0x1151 ---> 0x1160。

<4>.查看 printf("1111111111111111\n")语句(寻址范围 0x1151 ---> 0x1160)对应的汇编代码,使用disassemble Start,End命令

复制代码
(gdb) disassemble 0x1151,0x1160
Dump of assembler code from 0x1151 to 0x1160:
   0x0000000000001151 <_Z4testv+8>:	lea    0xeac(%rip),%rax        # 0x2004
   0x0000000000001158 <_Z4testv+15>:	mov    %rax,%rdi
   0x000000000000115b <_Z4testv+18>:	call   0x1050 <puts@plt>
End of assembler dump.
(gdb)
相关推荐
liulilittle14 小时前
C++ i386/AMD64平台汇编指令对齐长度获取实现
c语言·开发语言·汇编·c++
工业互联网专业14 小时前
汇编与接口技术:8259中断实验
汇编·单片机·嵌入式硬件·8259中断实验
small_wh1te_coder1 天前
硬件嵌入式学习路线大总结(一):C语言与linux。内功心法——从入门到精通,彻底打通你的任督二脉!
linux·c语言·汇编·嵌入式硬件·算法·c
Ronin-Lotus13 天前
微处理器原理与应用篇---ARM常见汇编指令
汇编·arm开发·微处理原理与应用
永夜的黎明16 天前
【二进制安全作业】250616课上作业1-栈溢出漏洞利用
c语言·汇编·安全
Geometry Fu18 天前
物联网控制技术 知识点总结 第三章 汇编语言 第四章 C51语言
汇编·物联网·51单片机
半桔19 天前
【Linux手册】进程的状态:从创建到消亡的“生命百态”
linux·运维·服务器·汇编·深度学习·面试
一条叫做nemo的鱼22 天前
从汇编的角度揭开C++ this指针的神秘面纱(下)
java·汇编·c++·函数调用·参数传递
一条叫做nemo的鱼22 天前
从汇编的角度揭开C++ this指针的神秘面纱(上)
汇编·c++·算法·函数调用·this指针·参数传递
qwertyuiop_i24 天前
汇编(函数调用)
汇编·windows·函数调用