首页 > 其他分享 >在链接与运行地址不同时gdb的调试方法

在链接与运行地址不同时gdb的调试方法

时间:2024-09-20 22:25:07浏览次数:10  
标签:0x80000 text elf gdb 地址 benos 链接 调试

搭建一个链接和运行不同的环境

SECTIONS
{
	. = 0xffff000000080000,
	/* . = 0x80000, */
	.text.boot : { *(.text.boot) }
	.text : { *(.text) }
	.rodata : { *(.rodata) }
	
	.....
}

-s还可以看到符号都链接到高地址去了

但是elf文件中有详细的地址信息,如果后续qemu加载的是elf的话就会按照elf加载,但是这并不是我们所希望的,所以通过下面的语句生成一个裸的二进制文件,没有地址信息

aarch64-linux-gnu-objcopy build/benos.elf -O binary benos.bin

但是将通过kernel参数将可执行文件bin传入,放置在默认的地址0x80000

qemu-system-aarch64 -machine raspi4b -nographic -kernel benos.bin -S -s

造成了运行地址和链接地址不同,这样通过gdbsever调试的时候无法正常的读取elf文件中的信息进行调试。

解决

在gdb中使用 add-symbol-file将elf的符号信息加入,并且设置每个段实际的运行地址,这样在gdb调试的时候就会通过产生的偏移来调试

add-symbol-file build/benos.elf 0x80030 -s .text.boot 0x80000 -s .rodata 0x802d0

每个段的位置可以通过readelf得到的每个段的偏移+0x80000计算出来

一劳永逸:在 .gdbinit 加入

target remote localhost:1234
add-symbol-file build/benos.elf 0x80030 -s .text.boot 0x80000 -s .rodata 0x802d0

标签:0x80000,text,elf,gdb,地址,benos,链接,调试
From: https://www.cnblogs.com/alanli07/p/18423392

相关文章

  • 调试、开发板、串口、Vitis、源码。
    ###调试和编译步骤1.**准备工作**:  -在开始调试之前,请确保开发板已通电,并且正确连接了开发板上的串口(USB-232)。查看串口号可以通过设备管理器进行确认。2.**编译项目**:  -右击项目,在弹出的菜单中选择编译选项来编译工程。3.**启动调试**:  -右击“he......
  • 性能测试之链接服务器实操
    一、项目背景因公司业务发展用户量增多,一些重要的接口请求也随着增多,导致接口响应变慢,需要优化接口的性能,所以团队里面就开始针对这些接口进行性能压力测试。二、前期准备工作1、性能测试的服务器(不能在生产的机器上进行测试)2、Jmeter压测工具三、操作流程1、从本地上传Jm......
  • Day01-标题、字体、引用、分割线、图片、超链接、列表、表格、代码
    Day01-标题、字体、引用、分割线、图片、超链接、列表、表格、代码标题一级标题:一个井号空格回车二级标题:两个井号空格回车二级标题三级标题:三个井号空格回车三级标题......(最多到6级标题)字体HelloWorld!!!!!!!斜体:字体两......
  • 交叉编译valgrind在嵌入式设备上调试程序
    valgrind是一个很好的内存检测工具,可以让程序员避免用“瞪眼法”去定位内存泄露问题。下面记录一下本人在arm64上使用valgrind的过程。目录1.下载最新版本的valgrind源码2.解压3.编译4.打包4.运行5.报错及解决方法1.下载最新版本的valgrind源码https://sourceware.org/ftp/valg......
  • SQL题库链接
    https://blog.csdn.net/godlovedaniel/article/details/116570983   具体应用:SQL进阶技巧:Hive如何巧解和差计算的递归问题?【应用案例2】-CSDN博客SQL进阶技巧:HiveURL解析函数详解及实际应用-CSDN博客SQL进阶技巧:车辆班次问题分析-CSDN博客 SQL进阶技巧:用户浏览日志......
  • 计算机毕业设计 基于协同过滤算法的个性化音乐推荐系统 Java+SpringBoot+Vue 前后端分
    ......
  • Windows 调试工具课程
    本文是我在集团内部上的课程记录而成的博客内容。在本次课程里面将和大家介绍一些在Windows上常用的调试工具,以及调查问题的常见套路。适合于伙伴们入门Windows调试本文以下内容是采用原本课程课件里面的一页页的内容组装而来,过程中补充一些讲课时的内容本次课程里面核心的......
  • Springboot基于SpringBootVue的智能敬老院管理系统ebjal(程序+源码+数据库+调试部署+开
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、研究背景与意义随着老龄化社会的到来,敬老院作为老年人生活的重要场所,其管理效率和服务质量直接关系到老年人的生活质量与幸福感。传统敬老院管......
  • Springboot基于springbootvue小学生学习阅读平台785j5(程序+源码+数据库+调试部署+开发
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、项目背景在当今信息化时代,阅读对于小学生而言不仅是获取知识的重要途径,也是培养思维能力和文化素养的关键环节。然而,传统的学习方式往往受限于......
  • Springboot基于springbootvue图书馆选座系统设计与实现41bpt--程序+源码+数据库+调试
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容随着高校图书馆的规模不断扩大和学生数量的增加,图书馆座位管理成为了一个亟待解决的问题。为了提升座位利用率,优化学生的学习环境,本项目拟设计并实......