首页 > 其他分享 >gdb高阶调试命令

gdb高阶调试命令

时间:2024-07-08 16:44:06浏览次数:15  
标签:高阶 value gdb 库中 动态 断点 调试 加载

  • 断点

    • 条件断点
      • condition 1 value==1: 此次的1表示break的编号,之后的value==1表示条件判断;即在value为1时,命中编号为1的断点;
      • ignore 1 4: 忽略断点为1的前4次命中,第5次开始,就需要命中;
    • d br: 删除所有的断点
  • 打印

    • p /t var-name: 打印变量名var-name的二进制内容;
  • 如何定位动态库中的代码

    当编译debug时,符号文件会嵌入到可执行文件中(这一点不像Windows下的可执行文件和符号文件,它们是分开的。)

    只有在gdb中start运行起来之后,才会加载动态库,之后才可以对动态库的代码进行断点设置。在main函数之后,先设置一个断点,之后就可以设置动态库的代码。动态库加载之后,可以使用如下命令进行参考:

    • i sharedlibrary: 查看已经加载的动态库;
    • b 动态库中的代码所在的文件:行号:定位动态库中的所在文件的行号;
    • b 类名:函数名: 可以定位某一个类中的函数;

标签:高阶,value,gdb,库中,动态,断点,调试,加载
From: https://www.cnblogs.com/gwzz/p/18290258

相关文章

  • 调试 hipcc 的llvm llc gpu目标代码生成模块
    源码:hello_vectorAdd.hip:__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=blockDim.x*blockIdx.x+threadIdx.x;C[i]=A[i]+B[i]+0.0f;}Makefile:x.O1.s:hello_vectorAdd.hip ../../local_amdgpu/bin/clang++./he......
  • 函数,调试,循环,头文件
    1.关于函数作用:避免代码重复可以方便维护,因为当多个地方需要用到同样的代码时,如果要做出修改只需要改函数就能整体修改。函数通常都会有返回值,什么类型的函数返回什么样的类型的值函数通常分为函数声明和函数参数通常声明放在头文件中函数定义发在C++文件中这样做可以在别的......
  • Redis 高阶应用
    生成全局唯一ID全局唯一ID需要满足以下要求:唯一性:在分布式环境中,要全局唯一高可用:在高并发情况下保证可用性高性能:在高并发情况下生成ID的速度必须要快,不能花费太长时间递增性:要确保整体递增的,以便于数据库创建索引安全性:ID的规律性不能太明显,以免信息泄......
  • 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,必须要......
  • SM5308调试问题以及解决办法
     第一版pcb打板后测试整体电路,只有sm5308充电管理芯片出问题,无法开机通电,输出也不稳定,时好时坏,只有在接上usb充电后才能正常工作。这个芯片在之前做的迷你充电宝方案中是没问题的,才将它移植到毕设上,所以电路图也是没问题的。测试时采用多种方案,先是对比可以使用板子和新焊接......
  • 工具|--LINQPad|--使用DnSpy调试LINQPad
    前言LINQPad本身就有调试功能,使用dnSpy调试LINQPad的代码,岂不是多此一举?其实主要是为了使用dnSpy调试LINQPad中使用到依赖dll的的底层代码,比如,在LINQPad中使用到了WPF的dll,使用dnSpy就可以调试到WPF的一些底层代码.并且,我尝试过,直接使用dnSpy加载LINQPad......
  • 【车载开发系列】常见单片机调试接口的区别
    【车载开发系列】常见单片机调试接口的区别【车载开发系列】常见单片机调试接口的区别【车载开发系列】常见单片机调试接口的区别一.JTAG协议二.SWD接口三.RDI接口四.仿真器1)J-Link仿真器2)ULink仿真器3)ST-LINK仿真器五.SWD/JTAG的各种区别六.信号线说明一......
  • 海思SD3403/SS928V100开发(14)WIFI模块RTL8821驱动调试
    1.前言芯片平台:海思SD3403/SS928V100操作系统平台:Ubuntu20.04.05【自己移植】WIFI模块:LB-LINK的RTL88212. 调试记录参考供应商提供的操作手册2.1lsusb查看设备2.2编译供应商提供的驱动2.2.1修改Makefile2.2.2编译报错解决办法:将Makefile中arm改成ar......