首页 > 其他分享 >GDB配置

GDB配置

时间:2024-06-22 14:20:27浏览次数:12  
标签:gcc 配置 GDB 报错 pretty printers 加载

gdb --help	#	可查看配置文件路径

image
全局配置/etc/gdbinit;用户配置文件~/.gdbinit

美观打印STL

当你尝试使用 GDB 的 "print"(打印)命令来显示向量、堆栈或任何其他 GDB 抽象数据结构的内容时,你将得到无用的结果。
GDB7.0之后,将支持用Python编写pretty-printers
这一特性配合libstdc++ svn(git)仓库,就是可视化C++容器的最好方式
配置方法主要分为两步

  1. 从gcc的仓库拉取对应的Python目录
  2. 配置gdbinit文件,使之加载pretty-printers脚本
python
import sys
sys.path.insert(0, '/path/to/gdb_printers/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
info pretty-printers	#	可查看已加载的pretty-printer

参考链接
STLSupport - GDB Wiki(看这个即可)
gcc - git
Writing a Pretty-Printer

可能出现的错误

  1. 路径配置错误,导致导入报错
    路径写到Python即可
    image
    --
    image

  2. 版本错误
    在打印unordered_map时,报错,说是缺少方法或成员
    可能的原因:因为编译新项目,更新了动态库libstdc++.so.6.19->libstdc++.so.6.21
    导致STL代码与gcc提供的printers不匹配
    解决方案:从gcc仓库下载对应版本的printers,在配置文件中加载
    image

  3. pretty-printers重复加载(未解决)
    这个报错是解决第二个问题的副作用,在~/.gdbinit中加载了对应版本的Python脚本之后
    就报了这个错误,但是再次查看unordered_map时,却正确了,于是没管这个报错(虽然报错但能正确工作)
    image

参考链接
gcc与libstdc++版本对应关系

标签:gcc,配置,GDB,报错,pretty,printers,加载
From: https://www.cnblogs.com/lifeAddicted/p/18261791

相关文章

  • spring头部命名空间配置
    头部约束文件配置<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www......
  • Spring Boot 源码分析五:Spring Boot AutoConfiguration 自动配置机制
    1.引言在前几篇文章中,我们探讨了SpringBoot的启动流程及其扩展机制。在本篇文章中,我们将深入分析SpringBoot的自动配置(AutoConfiguration)机制,这是SpringBoot最具特色和强大的功能之一。2.自动配置概述SpringBoot的自动配置机制旨在根据项目中的类路径和配置属性,自......
  • 【Linux基础】基础环境配置
    设置APT源进入源文本设置:vim/etc/apt/sources.list配置源:#中科大debhttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontribdeb-srchttp://mirrors.ustc.edu.cn/kalikali-rollingmainnon-freecontrib#阿里云debhttp://mirrors.aliyun.com/kali......
  • Silence 主题暗黑模式根据浏览器配置,以及切换页面闪白屏的问题处理
    最近使用Silencev3.0.0-rc2主题遇到两个偏好问题(感谢作者提供了这么好用的主题),记录下处理的过程。暗黑/亮色模式跟随浏览器的主题切换由于主题当前支持的配置项auto是根据时间定的,而不是根据浏览器的配置来的,而我个人偏向于跟随浏览器的配置来自动设置,于是用js先判断浏......
  • 网络硬件配置全指南:从PHY地址到网络通信
    摘要在现代网络通信中,硬件配置是确保网络设备正常工作的关键步骤。本文将详细介绍如何从设置物理层(PHY)地址开始,逐步完成网络硬件的初始化、寄存器配置、网络参数设置以及网络栈的启动。通过实际的配置示例,本文旨在帮助读者掌握网络硬件配置的基本流程和技巧。关键词网络硬件......
  • 双AdguardHome配置做DNS服务器
    双AdguardHome配置做DNS服务器概述看到网上dns泄露的文章,准备重新修改一下家里的网络配置后面准备使用mosDns作为53端口入口,使用两个adguardHome,一个插件的,专门用于国内的dns服务器,一个使用docker安装adguardHome,专门用于国外dns服务器MosDns配置使用docker安装adguardHome......
  • 【Mac 从 0 到 1 保姆级配置教程 03】 - 安装配置美化 iterm2 一气呵成,Mac 下经久不衰
    1.前言如果你让我给别人推荐一款Mac下的终端,那我会毫不犹豫的推荐iterm2,因为它足够经典,足够好用。当然优秀的终端有很多,比如:alacritty、kitty等,大家感兴趣的可以尝试一下。我们今天主要讲解iterm2的安装、配置和美化。2.安装iterm2brewinstall--caskiterm......
  • FreeBSD通过CBSD管理低资源容器jail 网络NAT配置
    jail容器里的系统有时候并不需要公开的地址,所以给它们配置内网地址即可。但是这些系统一般都有上网的需求,这时候可以使用nat进行解决。CBSD可以配置NAT规则,只需要命令cbsdnatcfg,配置好后cbsdnaton启动即可:%cbsdnatcfgConfigureNATforRFC1918Network?[yes(1)orn......
  • Linux系统之配置Nginx反向代理
    Linux系统之配置Nginx反向代理一、Nginx介绍1.1Nginx简介1.2Nginx反向代理二、本次实践介绍2.1本次实践简介2.2本次实践环境规划三、基于端口配置反向代理3.1安装nginx软件3.2备份配置文件3.3编辑nginx配置文件3.4启动Nginx服务3.5检查Ng......
  • Kali 安装并配置 Nessus
    Kali安装并配置Nessus安装Nessus创建nessus文件夹sudomkdir/opt/nessus下载Nessus(https://www.tenable.com/downloads/nessus?loginAttempted=true),并上传至/opt/nessus文件夹在/opt/nessus路径下,使用命令安装Nessusdpkg-iNessus-10.7.4-debian6_a......