辅助阅读代码

辅助代码工具:

1、sourcetrail
2、valgrind , qcachegrind

sourcetrail,可以生成类图,以及类之间,函数之间的调用关系

1、安装
2、使用该工具需要使用cmake 编译一次
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON 其他的cmake 需要命令
3、构建project,添加group
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于这里,我编译了cmake,所以选择第一个。

在这里插入图片描述

至此就可以了

Valgrind 是一款用于内存调试、内存泄漏检测以及性能分析的开源工具集,它包含多个工具,其中一些工具可以生成图形化的输出以帮助用户更好地理解程序的行为。以下是 Valgrind 中可以显示图形的工具:

KCachegrind/qcachegrind:
KCachegrind/ qcachegrind 是一个图形化的性能分析工具,它可以读取 Callgrind 生成的调用图数据,并以图形化的方式展示出来。它提供了丰富的可视化选项,包括火焰图(Flame Graph)、调用树(Call Tree)等,可以帮助用户快速定位性能瓶颈。
Massif:
Massif 是一个堆分析器,它可以生成随时间推移的堆使用情况图表。这个图表显示了程序的哪些部分负责最多的内存分配,并且可以通过文本或 HTML 文件来提供更多的详细信息。虽然 Massif 本身不直接生成图形,但它生成的数据可以被其他工具(如 KCachegrind)用来生成图形。
Callgrind:
虽然 Callgrind 本身并不直接生成图形,但它可以收集程序运行时的数据,并建立函数调用关系图。这些数据可以被其他工具(如 KCachegrind)用来生成图形化的调用图。此外,Callgrind 还支持 cache 模拟,并可以将分析数据写入一个文件,该文件可以被其他工具读取并转化为可读的形式。
Helgrind:
Helgrind 是一个线程调试器,用于检测多线程程序中的数据竞争。虽然它本身不直接生成图形,但它可以找出被多个线程访问但缺少同步的内存位置,这些位置可能会导致难以发现的时序相关问题。Helgrind 的输出通常以文本形式呈现,但你可以使用其他工具(如文本编辑器或 IDE)来查看和分析这些输出。

valgrind --tool=callgrind 二进制 (二进制的参数)

在这里插入图片描述

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

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

相关文章

手机同步与数据安全:让手机和电脑完美结合!

在当今这个高度信息化的社会,手机和电脑不仅为我们提供了丰富的信息资源,让我们能够随时随地获取所需的信息,还为我们的生活带来了极大的便利。无论是工作、学习还是娱乐,手机和电脑都发挥着至关重要的作用。 然而,随…

Paddle 实现DCGAN

传统GAN 传统的GAN可以看我的这篇文章:Paddle 基于ANN(全连接神经网络)的GAN(生成对抗网络)实现-CSDN博客 DCGAN DCGAN是适用于图像生成的GAN,它的特点是: 只采用卷积层和转置卷积层&#x…

优先队列——大小堆—— priority_queue

本人博客主页 本篇博客相关博客 二叉树--讲解 文章目录 目录 文章目录 前言 一、priority_queue是什么? 二、priority_queue的使用 1、相关函数 2、代码使用 3、堆的插入删除 三、模拟实现 1、大框架 2、仿函数 3、向下调整 4、向下调整 总结 前言 在我们学习二叉…

免费SSL证书怎么签发

大家都知道SSL证书好,作用大,安全性高,能加权重,等保必须的参考值。但是如何选择合适且正确的证书也是至关重要的,网站更适合单域名证书、多域名证书、泛域名证书、还是多域名通配符证书。 首先大家要清楚&#xff0c…

网站访问提示不安全怎么办??

当网站访问时提示“不安全”,这通常与网站的SSL证书有关,或者是网站本身存在一些安全风险。以下是一些解决步骤和建议: 1、检查URL前缀:首先,检查URL是否以https://开头。如果仍然是http://,则网站没有使用…

我必须要吹一波MATLAB 2024a,太牛逼了!|福利:附安装教程及下载地址

最近逛MATLAB官网,发现MATLAB 2024a版本已经Pre-release了,翻了下release note,不得不感叹,实在是太强了! 这次重点更新了四个工具箱: Computer Vision Toolbox Deep Learning Toolbox Instrument Contro…

鸿蒙内核源码分析(文件句柄篇) | 你为什么叫句柄

句柄 | handle int open(const char* pathname,int flags); ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, const void *buf, size_t count); int close(int fd);只要写过应用程序代码操作过文件不会陌生这几个函数,文件操作的几个关键步骤嘛,跟把大…

Linux开发--Bootloader应用分析

Bootloader应用分析 一个嵌入式 Linux 系统从软件的角度看通常可以分为四个层次: 引导加载程序。包括固化在固件( firmware )中的 boot 代码(可选),和 Boot Loader 两大部分。 Linux 内核。特定于嵌入式板子的定制内核以及内核的启动参数。 文件系统…

大华智能物联综合管理平台 fastjson远程代码执行漏洞复现

0x01 产品简介 大华ICC智能物联综合管理平台对技术组件进行模块化和松耦合,将解决方案分层分级,提高面向智慧物联的数据接入与生态合作能力。 0x02 漏洞概述 由于大华智能物联综合管理平台使用了存在漏洞的FastJson组件,未经身份验证的攻击者可利用 /evo-runs/v1.0/auths/…

【Qt】界面定制艺术:光标(cursor)、字体(font)、提示(toolTip)、焦点(focusPolicy)与样式表(styleSheet)的深度探索

文章目录 前言:1. cursor: 设置按钮的光标2. front:设置字体3. toolTip: 鼠标悬停提示4. focusPolicy:设置控件获取到焦点的策略5. styleSheet : 样式表总结: 前言: 在现代软件开发中,用户界面(UI)的设计和…

【MySQL 数据宝典】【事务锁】- 002 事务控制的演进

一、事务处理思路 1.1 排队 排队处理是事务管理最简单的方法,就是完全顺序执行所有事务的数据库操作,不需要加锁,简单的说就是全局排队。序列化执行所有的事务单元,数据库某个时刻只处理一个事务操作,特点是强一致性…

Java刷题-基础篇

目录 题目1:打印1~100内奇数和、偶数和 题目2:计算5的阶乘 题目3:计算 1!2!3!4!5! 的和 题目4:找1~100之间即能被3整除,又能被5整除的数字,要求必须使用break/continue 题目5:实现猜数字小…

LeetCode 112. 路径总和 || LeetCode 113. 路径总和ii

LeetCode 112. 路径总和 1、题目 题目链接:112. 路径总和 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true…

Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)

上次讲了进程这些内容:Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解) 文章目录 1.Linux中的进程状态1.1前台进程和后台进程运行状态睡眠状态磁盘休眠状态停止状态kill指令—向进程发送信号 死亡状态 2.僵尸进程2.1僵…

iOS--runloop的初步认识

runloop的初步认识 简单认识runloopEvent looprunloop其实就是个对象NSRunloop和CFRunLoopRef的依赖关系runloop与线程runloop moderunloop sourceCFRunLoopSourceCFRunLoopObserverCFRunLoopTimer runloop的实现runloop的获取添加ModeCFRunLoopAddCommonMode 添加Run Loop Sou…

C语言 | Leetcode C语言题解之第79题单词搜索

题目: 题解: int directions[4][2] {{0, 1}, {0, -1}, {1, 0}, {-1, 0}};bool check(char** board, int boardSize, int boardColSize, int** visited, int i, int j, char* s, int sSize, int k) {if (board[i][j] ! s[k]) {return false;} else if (…

NSSCTF中的web学习(md5())

目录 MD5的学习 [BJDCTF 2020]easy_md5 [LitCTF 2023]Follow me and hack me [LitCTF 2023]Ping [SWPUCTF 2021 新生赛]easyupload3.0 [NSSCTF 2022 Spring Recruit]babyphp MD5的学习 md5()函数: md5($a):返回a字符串的散列值 md5($a,TRUE)&…

AWS云优化:实现性能和成本的最佳平衡

随着企业数字化转型的加速,对云计算平台的需求也不断增长。AWS作为云计算行业的领导者之一,提供了广泛的云服务和解决方案,帮助企业实现业务的创新和发展。在AWS云上部署应用程序和服务后,对其进行优化是至关重要的,以…

flutter报错

组件相关 type ‘List’ is not a subtype of type ‘List’ children: CardList.map((item) > Container( 加上 *** < Widget>*** 正常 type ‘(dynamic, dynamic) > Container’ is not a subtype of type ‘(CardType) > Widget’ of ‘f’ children: CardL…

YOLO系列笔记(十四)——Compute Canada计算平台及其常见命令介绍

Compute Canada平台及其常见命令介绍 前言优势使用方法1. 检查模块不带版本号带版本号 2. 加载模块3. 检查模块是否加载成功4. 创建虚拟环境5. 编写作业脚本6. 提交作业7. 监控作业状态8. 查看作业开始预计时间9. 查看作业的详细输出10. 取消作业 注意结语 前言 大家好&#x…