gdb-dashboard的简单使用

news2024/9/23 11:20:21

问题描述

众所周知,随着IDE的普及,越来越多的人不习惯命令行调试,但是Linux开发又绕不开GDB,所以有大佬开发了程序用来显示常见的一些调试参数,gdb-dashboard是比较热门的程序之一。附链接。

使用参考

神仙GDB调试工具 gdb-dashboard
还有github的wiki

可能存在的问题

  • 设置语法高亮
    在这里插入图片描述
    gdb-dashboard安装完成之后,安装pygments,调试source显示这样:
    在这里插入图片描述
    显然没有高亮,所以需要找问题出在哪里。
    在这里插入图片描述
    所以先看看可选的pygmentsstyle,在gdb中执行:
python
from pygments.styles import *
for style in get_all_styles():
    print(style)
end

在这里插入图片描述
提示没有安装pygments。这时就要考虑python的环境了。

python
import sys
print(sys.version)
end

在这里插入图片描述
可见此处的python版本是3.6.9,我们去gdb外看一下:(ubuntu1804)
在这里插入图片描述
所以可得该GDB内部的interpreter是python3。
下图链接。
在这里插入图片描述

#1、如果已经安装python2和python3,但没有安装pip
#python2安装pip:
sudo apt install python-pip
#python3安装pip:
sudo apt install python3-pip
#2、如果已经安装python2和python3,同时两个环境下也分别安装了相应的pip
#使用pip给python2环境装软件:
python2 -m pip install XXX
#使用pip给python3环境装软件:
python3 -m pip install XXX

再回到gdb环境
在这里插入图片描述
查看可选的style可在gdb环境中执行get_all_styles,输出:

default
emacs
friendly
friendly_grayscale
colorful
autumn
murphy
manni
material
monokai
perldoc
pastie
borland
trac
native
fruity
bw
vim
vs
tango
rrt
xcode
igor
paraiso-light
paraiso-dark
lovelace
algol
algol_nu
arduino
rainbow_dash
abap
solarized-dark
solarized-light
sas
staroffice
stata
stata-light
stata-dark
inkpot
zenburn
gruvbox-dark
gruvbox-light
dracula
one-dark
lilypond
nord
nord-darker
github-dark

修改为rainbow_dash

dashboard -style syntax_highlighting 'rainbow_dash'

在这里插入图片描述
不过这种修改是临时的,如果需要永久生效,则:
在这里插入图片描述
每次配置完,执行:

dashboard -configuration ~/.gdbinit.d/init

随便聊聊

通过配置gdb-dashboard大体上知道了gdb对python的支持,gdb manual中有Basic Python章节可以参考,以及这篇Python in GDB博文.

(gdb) python print(gdb.PYTHONDIR)

在这里插入图片描述
对于交叉编译器,
在这里插入图片描述

安装到/usr/local(可选)

结合上一篇,配置configure

#由于gdb在host上跑,所以不配置host,默认当前ubuntu系统下运行
#--with-python指定python路径
./configure --with-python=/usr/bin/python3 --prefix="/usr/local" --target=aarch64-himix100-linux --program-prefix=hisi-
make -j16
make install

如果未生效,将程序路径加入配置项:

vi /etc/profile
#让环境变量立即生效需要执行如下命令:
source /etc/profile

附:Linux里设置环境变量的方法(export PATH)
GDB Tips and Tricks #1: A Tale of Two Terminals

AutoTools的使用

Changing the Install Directory with make install,这个网站有一些很不错的内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Golang入门笔记(7)—— 函数 func

函数是什么? 函数:为完成某一功能的程序的语句指令的集合。 感觉重头戏逐渐到来了,让我们好好的,认真对待它吧!为什么要使用函数? 为了提高代码的复用,减少代码的冗余,提高代码维护性…

前端框架 React 学习总结

目录 一、React在HTML里的运用 二、React框架的常用操作 1、JSX基础语法规则 2、state数据的使用 3、生命周期 4、数据的双向绑定与Ref 5、PropTypes验证规则 6、React里的插槽 7、错误边界 8、直接操作refs元素 9、高阶组件的运用案例 10、性能优化 11、Hook生命…

Linux中安装mysql8

一、下载MySQL到 /usr/local/src 1、打开官网下载界面 MySQL :: Download MySQL Community Server (Archived Versions) 2、选择某个版本的下载地址 以https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz这个地址作为例子 …

Kubernetes 系统化学习之 持久存储篇(五)

1. ConfigMap ConfigMap 是一种 API 对象,用来将非机密性的数据保存到键值对中。使用时,Pods 可以将其用作环境变量、命令行参数或者存储卷中的配置文件。ConfigMap 的主要作用就是为了让镜像和配置文件解耦,以便实现镜像的可移植性和可复用性…

day07 Elasticsearch搜索引擎3

day07 Elasticsearch搜索引擎3 1、数据聚合 聚合(aggregations)可以让我们极其方便的实现对文档数据的统计、分析、运算。例如: 什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售…

java设计模式之观察者模式

一:观察者模式 1.什么是观察者模式? 观察者模式是一种行为设计模式, 允许你定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 观察者模式的基本介绍 又被称为发布-订阅(Publish/Subscribe&#xff09…

从阿里云容器攻防矩阵API安全生命周期,看如何构建金融安全云原生平台

【编者按】云原生技术正在助力银行通过差异化业务进行创新,却也带来了由于研发/运维人员对新架构不熟悉所导致的基础设施风险、业务风险及数据暴露风险。如何在飞速更迭的技术环境下保持业务持续发展,同时保证业务整体的安全性,满足不断增强的…

设计模式-装饰器模式

装饰器模式也称为包装模式是指在不改变原有对象的基础上,将功能附加到对象上,提供比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式 装饰器模式的核心是功能扩展,使用装饰器模式可以透明且动态的扩展类的功能 装饰器模式通用UML类图 主要角…

培训学校管理系统之家校管理

近年来,伴随着信息技术的进步。除了不少学校开展了数字化校园的建设,一些培训机构也在使用数字化系统进行管理。同时,由于招生数量的不断增长,如何解决学生、教师、家长三者之间的联系沟通问题,促进教学管理任务的有效…

排序(详解)

排序排序的概念常见的排序算法直接插入排序希尔排序(缩小增量排序)选择排序堆排序冒泡排序快排(递归)霍尔版本挖坑法前后指针法快排(非递归)归并排序(递归)归并排序(非递…

区块链动态化监管方案

前言 监控运维模块是区块链BaaS的核心模块之一,我们针对联盟链、主机和系统等多个监控对象提供丰富的监控指标。通过BaaS提供的综合监控大屏,用户可直观洞悉区块链业务全局,实现7*24小时监控全覆盖。 但随着BaaS业务的扩展,对监…

jsp教师教学信息管理系统Myeclipse开发sqlserver数据库web结构java编程计算机网页项目

一、源码特点 JSP 教师教学信息管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库文,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为sqlserver2008…

微服务拆分总结(一)

微服务要解决的问题: 1、可以快速迭代; 2、解决三高问题(高并发,高可用,高性能) 什么时候拆分微服务,拆分的时机是什么? 提交频繁代码冲突; 模块之间耦合严重&#…

RocketMQ 重试机制详解及最佳实践

作者:斜阳 引言 本文主要介绍在使用 RocketMQ 时为什么需要重试与兜底机制,生产者与消费者触发重试的条件和具体行为,如何在 RocketMQ 中合理使用重试机制,帮助构建弹性,高可用系统的最佳实践。 RocketMQ 的重试机制…

[附源码]java毕业设计静谧空间自习室预订系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

服务器部署Vue2脚手架的PIXI游戏项目-知识点注意

文章目录安装PIXI框架方式一(安装)方式二(引入)javaScript代码位置initPixi方法组件挂载完毕后调用注意文件导入使用import一个个导入并命名使用setTimeout()方法使用一般方法调用表达式使用安装PIXI框架 方式一(安装…

高通量筛选检测方法-分子篇

分子水平的筛选更多的是检测酶/受体功能的改变或探针/蛋白质结合的抑制,或是检测蛋白质-配体结合的结构、动力学和亲和度。 下面将介绍了荧光偏振、荧光共振能量转移、酶联免疫吸附、表面等离子共振和核磁共振技术几种方法。 ■ 荧光偏振 荧光偏振是一项在高通量筛…

2-STM32GPIO输入之按键

文章目录1-硬件设计1.1 按键消斗1.1.1 RS触发器1.1.2 电容滤波2 按键电路设计2.1 软件消斗2.2 硬件消斗2.3 检测原理2-软件设计2.1 软件消斗2.1.1原理2.1.2 编程要点2.1.3 步骤2.2 代码编写2.2.1 主程序2.2.2 按键初始化2.2.2 按键扫描本章讲述GPIO输入的应用,使用独…

第03章_用户与权限管理

第03章_用户与权限管理1 用户管理1.1 登录MySQL服务器1.2 创建用户1.3 修改用户1.4 删除用户1.5 设置当前用户密码1.6 修改其它用户密码1.7 MySQL8密码管理(了解)2. 权限管理2.1 权限列表2.2 授予权限的原则2.3 授予权限2.4 查看权限2.5 收回权限3. 权限表3.1 user表3.2 db表3.…

【springboot】18、内置 Tomcat 配置和切换

文章目录基本介绍Tomcat配置切换其他Web服务总结基本介绍 SpringBoot 支持的 webServer有: Tomcat, Jetty, or Undertow,我们使用spring-boot-starter-web进行web开发时,默认使用的就是Tomcat,下面来说明一下tomcat的配置以及切换其他的Web服…