【linux】Valgrind工具集详解(六):使用Valgrind gdbserver和GDB调试程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83748757 一、概述 在Valgrind下运行的程序不是由CPU直接执行的。相反,它运行在Valgrind提供的合成CPU上。这就是调试器在Valgrind上运行时无法调试程序的原因。 二、快速入门 在使用Memcheck工具时使用GDB调试程序,启动方式如下: 1、valgrind --vgdb = yes --vgdb-error =
分类: 其他 发布时间: 11-22 23:00 阅读次数: 0

【linux】Valgrind工具集详解(七):Memcheck(内存错误检测器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83749609 一、概述 Memcheck是一个内存错误检测器。它可以检测C和C ++程序中常见的以下问题: 1、非法内存:如越界、释放后继续访问; 2、使用未初始化的值; 3、释放内存错误:如double-free(同一内存上执行了两次free)、或者 malloc、new、new[] 与 free、delete、delete[]错配使用
分类: 其他 发布时间: 11-22 23:00 阅读次数: 0

【linux】Valgrind工具集详解(八):Memcheck命令行参数详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83753283 【linux】Valgrind工具集详解(五):命令行详解中不够全,在此专门针对Memcheck工具中的命令行参数做一次详细的解释。 Memcheck命令行选项 –leak-check=<no|summary|yes|full> [default: summary] 程序执行完毕后,搜索内存泄漏。默认值为summary,只统计
分类: 其他 发布时间: 11-22 23:00 阅读次数: 0

【linux】Valgrind工具集详解(九):Memcheck检查的内容和方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83781852 一、值的有效性 1、什么是值的有效性? 英文原文是Valid-value (V) bits,直译过来就是有效值(V)位。 我将它理解为值的有效性,就是判断在内存或CPU的物理地址中存储的数据是否有效,比如在内存中变量(int i)代表的物理位置(不是地址),没有初始化,就去使用它,是否合法,参见下面的判断。 2、当仅仅是复制未
分类: 其他 发布时间: 11-22 22:59 阅读次数: 0

【linux】Valgrind工具集详解(十):SGCheck(检查栈和全局数组溢出)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83784492 一、概述 SGCheck是一种用于检查栈中和全局数组溢出的工具。它的工作原理是使用一种启发式方法,该方法源于对可能的堆栈形式和全局数组访问的观察。 栈中的数据:例如函数内声明数组int a[10],而不是malloc分配的,malloc分配的内存是在堆中。 SGCheck和Memcheck是互补的:它们的功能不重叠。 Memc
分类: 其他 发布时间: 11-22 22:59 阅读次数: 0

【linux】Valgrind工具集详解(十一):Massif(堆分析器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83788559 一、概述 Massif是一个堆分析器。它统计程序使用的堆内存大小(由malloc等函数分配的内存)。默认情况下不统计程序所使用的所有内存,如果想统计所有内存,需要使用选项–pages-as-heap=yes。 堆分析可以帮助减少程序使用的内存。如果分配的内存还没有释放并且指针也在,这种情况对于Memcheck(内存泄漏检查器)
分类: 其他 发布时间: 11-22 22:59 阅读次数: 0

【linux】Valgrind工具集详解(十二):DHAT:动态堆分析器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83861592 一、概述 DHAT动态堆分析器。Massif(堆分析器)是在程序结束后输出分析结果,而DHAT是实时输出结果,所以叫做动态堆分析器。Massif只记录堆内存的申请和释放,DHAT还会分析堆空间的使用率、使用周期等信息。 DHAT的功能:它首先记录在堆上分配的块,通过分析每次内存访问时所指定的块判断是否是之前已经记录过的块,并收
分类: 其他 发布时间: 11-22 22:59 阅读次数: 0

【linux】Valgrind工具集详解(十三):Helgrind(线程错误检测器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/83865659 一、概述 Helgrind用于检测C、C ++和Fortran程序中使用符合POSIX标准的线程函数造成的同步错误。 POSIX中关于线程的主要抽象描述有:共享公共地址空间的一组线程、线程创建、线程连接、线程退出、互斥(锁)、条件变量(线程间事件通知)、读写器锁、自旋锁、信号量和线程等待(也叫做屏障)。 Helgrind可以检
分类: 其他 发布时间: 11-22 22:58 阅读次数: 0

【linux】top命令详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/84032717 1、参数详解 $ top -help procps-ng version 3.3.9 Usage: top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols] -b:打印所有程序 -c:以命令行的形式显示程序名 -d:设置刷新间隔时
分类: 其他 发布时间: 11-22 22:58 阅读次数: 0

【linux】md5sum 命令详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/84102616 1、命令详解 $ md5sum --help Usage: md5sum [OPTION]... [FILE]... Print or check MD5 (128-bit) checksums. With no FILE, or when FILE is -, read standard input. -b, --bi
分类: 其他 发布时间: 11-22 22:58 阅读次数: 0

【linux】Valgrind工具集详解(十三):DRD(线程错误检测器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/84032369 一、概述 多线程编程需要注意的问题: 数据竞争;锁竞争;POSIX线程API使用不当;死锁; 二、使用 1、例子main.c源码 #include <stdio.h> #include <pthread.h> #include <sys/types.h> #include <unistd.h> static pthread_
分类: 其他 发布时间: 11-22 22:58 阅读次数: 0

【linux】Valgrind工具集详解(十四):Cachegrind(缓存和分支预测分析器)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/84137730 一、概述 Cachegrind,它模拟CPU中的一级缓存I1,Dl和二级缓存,能够精确地指出程序中cache的丢失和命中。如果需要,它还能够为我们提供cache丢失次数,内存引用次数,以及每行代码,每个函数,每个模块,整个程序产生的指令数。这对优化程序有很大的帮助。 Cachegrind模拟程序与CPU的缓存层次结构和分支预测
分类: 其他 发布时间: 11-22 22:57 阅读次数: 0

【linux】Valgrind工具集详解(十五):Callgrind(性能分析图)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010168781/article/details/84303954 一、概述 1、Callgrind Callgrind用于记录程序中函数之间的调用历史信息,对程序性能分析。默认情况下,收集的数据包括执行的指令数,它们与源码行的关系,函数之间的调用者、被调用者关系以及此类调用的数量。可选项是,对高速缓存模拟和分支预测(类似于Cachegrind)。 2、callgrind_annotate、c
分类: 其他 发布时间: 11-22 22:57 阅读次数: 0

[PAT][Python](读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。)

读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含 1 个测试用例,即给出自然数 n 的值。这里保证 n 小于 10^100 。 输出格式: 在一行内输出 n 的各位数字之和的每一位,拼音数字间有 1 空格,但一行中最后一个拼音数字后没有空格。 输入样例: 1234567890987654321123456789 输出样例: yi san wu from math import sqrt import sys number = { ‘1’: ‘y
分类: 其他 发布时间: 11-22 22:57 阅读次数: 0

关于创建知识共享系统数据库的一些操作

创建sharing数据库 create database sharing on primary ( name = 'sharing', filename = 'E:\SQL Server\sharing.mdf', size = 10mb, filegrowth = 5mb ) log on ( name = 'sharing_log', filename = 'E:\SQL Server\Class.ldf', size = 5mb, filegr
分类: 其他 发布时间: 11-22 22:56 阅读次数: 0

参加浙江中医药大学第十一届程序设计竞赛(ACM赛制)的总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhouyuheng2003/article/details/78766957 前言 2017.12.10,浙江中医药大学主办了一场acm赛制的比赛(浙江中医药大学第十一届程序设计竞赛),而我和我们学校(杭州二中白马湖学校)的另外两名同学组成一队也去参加了,这是我打的第一场acm比赛,和传统的oi比赛不同,acm赛制的形式不一样,题目类型也不一样。 规则介绍 这场比赛的规则和传统acm大致相同,只
分类: 其他 发布时间: 11-22 22:56 阅读次数: 0

动态开点线段树(多棵线段树)的内存分配与回收

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhouyuheng2003/article/details/78871504 前言 线段树,是一个很好用的能支持O(logn)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否则会MLE内存超限),于是就出现了线段树的动态开点写法 基本思想 与普通的线段树相同,动态开点线段树只是一开始每一个节点
分类: 其他 发布时间: 11-22 22:55 阅读次数: 0

不平等博弈问题学习记录(一)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhouyuheng2003/article/details/78939235 听到博弈问题,第一个想到的想必是用SG函数做的博弈题,就比如Nim游戏 Nim游戏:有N堆石子,每次选一堆石子,拿走若干石子(不能不取),先不能取的人输 定义个SG函数 对于SG函数,大致就记录两个东西吧 定义SG函数g(x)=mex{ g(y) | y是x的后继 } 游戏的和的SG函数值是它的所有子游戏的SG函数值的
分类: 其他 发布时间: 11-22 22:55 阅读次数: 0

不平等博弈问题学习记录(二)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhouyuheng2003/article/details/78947426 在上一篇文章中,定义了{l|r}这个运算 但是,还有很多的特殊情况没有考虑过,就比如说,在{L|R}的运算中,L或R为空集怎么办,那么这个这个空集就可以用Φ Φ 表示,不过一般可以用不写任何东西来表示,比如说|=0 |=0 ,可以当做无穷(如果是左边是空集,那么可以视为是无穷小,如果右边是空集,那么可以视为是无穷大)
分类: 其他 发布时间: 11-22 22:55 阅读次数: 0

不平等博弈问题学习记录(三)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhouyuheng2003/article/details/78975417 今天写的这一篇文章离写第一篇文章的时间可能有几天了,并且在这段时间里也有人向我提出了我错误的地方,现已作更改。 今天,我们又做到了一道题目,也是不平等博弈的,听了讲题,我对不平等博弈有了更深的理解。 首先,不平等博弈,或者说是一个游戏,一直以来我觉得都可以用超实数来做,但今天我发现,其实超实数其实是一种数,这种游戏的状
分类: 其他 发布时间: 11-22 22:55 阅读次数: 0