首页 > 编程语言 >0173-GDB 调试汇编程序

0173-GDB 调试汇编程序

时间:2024-07-13 09:10:55浏览次数:11  
标签:0173 汇编程序 start GDB debug 断点 调试

环境

  • Time 2022-11-12
  • WSL-Ubuntu 22.04
  • QEMU 6.2.0
  • NASM 2.15.05

前言

说明

参考:https://os.phil-opp.com/multiboot-kernel/
参考:https://ncona.com/2019/12/debugging-assembly-with-gdb/

目标

编写一个简单的汇编程序,使用 GDB 进行调试。

汇编程序

section .text
    global _start
_start:
    mov rax, 60
    mov rdi, 0
    syscall

编译和链接

nasm -f elf64 -g debug.asm,增加 -g 参数,可以将 debug 信息编译进去。
ld -o debug debug.o 链接命令。

GDB 调试

gdb debug 启动程序,使用 b _start 增加断点。
r 命令运行程序,即到达断点。

总结

了解 GDB 调试汇编程序的方法。

附录

标签:0173,汇编程序,start,GDB,debug,断点,调试
From: https://www.cnblogs.com/jiangbo4444/p/18299664

相关文章

  • 0175-GDB 调试 multiboot 启动
    环境Time2022-11-12WSL-Ubuntu22.04QEMU6.2.0NASM2.15.05前言说明参考:https://os.phil-opp.com/multiboot-kernel/目标使用编写好的内核可执行文件,直接从QEMU启动,启动时暂停CPU,使用GDB调试。汇编代码section.multiboot_headerheader_start:dd0x1BAD......
  • 013 GDB跟踪程序
    题目要求请学习gdb调试工具的使用(这对后续调试很重要),并通过gdb简单跟踪从机器加电到跳转到0x80200000的简单过程。只需要描述重要的跳转即可,只需要描述在qemu上的情况。启动调试和监听的指令使用[[010基于SBI服务完成输出和关机#^fb8fca|之前学到的指令]],开启两......
  • gdb高阶调试命令
    断点条件断点condition1value==1:此次的1表示break的编号,之后的value==1表示条件判断;即在value为1时,命中编号为1的断点;ignore14:忽略断点为1的前4次命中,第5次开始,就需要命中;dbr:删除所有的断点打印p/tvar-name:打印变量名var-name的二进制内容;如何......
  • C++初学者指南-4.诊断---用gdb调试
    C++初学者指南-4.诊断—用gdb调试幻灯片gdb/前端gdbGNU的命令行调试器cgdb基于终端的gdb前端Linux安装:sudoapt-getinstallcgdbgdbgui基于浏览器的gdb前端网址:https://gdbgui.com/安装:sudopipinstallgdbguiQtCreator可以连接gdbVisualStudioCode可以连接gdbV......
  • gdb安装调试,多系统下的安装使用(Ⅳ)
    1.gdb是什么?为什么要熟悉gdb调试?         gdb(GNU调试器)是一个强大的调试工具,允许开发者在程序运行时检查和修改变量的值,单步执行代码,设置断点,以及查看程序的状态。可以比较偏激的说如果是关注于linux下的开发和研究,基本上离不开gdb调试的。2.在各平台下的gdb下载......
  • C++开发调试工具:GDB调试,windebug调试,adb调试
    我们在C++开发过程中时常避免不了要调试追踪,一下介绍最主流的三种调试工具:一.GDB调试1.coredump文件:coredump文件是程序异常时系统产生的错误日志文件,即核心转储文件;编译一个debug程序,必须是debug版本,否则无法产生coredump文件;编译命令:g++test.cpp-omytest-g,必须要......
  • 自定义Python工具箱实现mdb转出为shp或gdb格式----终章(工具免费)
    一、内容提示        前边几篇文章,介绍了mdb地理数据库结构解析、mdb转出为shp示例,以及mdb转为gdb的几种技术路线探讨,并未对mdb转出为shp、或gdb格式进行完整实现。        为了方便使用,并支持更加复杂的使用场景,小编已将前边几篇文章中的内容进行集成,将mdb......
  • 解决gdb 在64位机器上显示sizeof(long)=4的问题
    问题:gdb在64位机器上显示sizeof(long)=4大家都知道在64位机器上,c语言的long类型占用8个字节,但今天因验证一个功能,启动gdb,执行了printsizeof(long)返回值为4,让人大为震惊,是服务器环境有问题吗?赶快编写一个最简单的c程序1#include<stdio.h>23intmain(void){4print......
  • Linux-gdb
    目录1.-g生成含有debug信息的可执行文件2.gdb开始以及gdb中的常用执行指令3.断点的本质用法4.快速跳出函数体5.其他1.-g生成含有debug信息的可执行文件2.gdb开始以及gdb中的常用执行指令3.断点的本质用法断点的本质是帮助我们缩小出问题的范围比如,......
  • 嵌入式GDB调试Linux C程序或交叉编译(开发板)
    目录简介开始使用电脑端准备安装gdb1.编译带调试信息的可执行文件2.进入gdb3.启动程序常用命令设置断点:进入函数打印数值结束常用命令l回车键bCSnpq参考文档1、安装gdb。2、gdb的简单使用。(1)在可执行文件中加入源码信息(2)进入gdb(3)gdb调试常用命令[1]start[2]单步执行(n......