当前位置: 首页 > news >正文

小城市做网站随州网站建设便宜

小城市做网站,随州网站建设便宜,建设银行杭州纪念币预约网站,贵州最新消息今天1、Valgrind 简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具#xff0c;它可在以下平台上运行#xff1a; X86/Linux、AMD64/Linux、ARM/Linux、ARM64/Linux、PPC32/Linux、PPC64/Linux、PPC64LE/Linu x、S390X/Linux、MIPS32/Linux、MIPS64/Li… 1、Valgrind 简介 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具它可在以下平台上运行 X86/Linux、AMD64/Linux、ARM/Linux、ARM64/Linux、PPC32/Linux、PPC64/Linux、PPC64LE/Linu   x、S390X/Linux、MIPS32/Linux、MIPS64/Linux、X86/Solaris , AMD64/Solaris, ARM/Android (2.3.x 及 更 高 版 本 ), ARM64/Android, X86/Android (4.0 及 更 高 版 本 ), MIPS32/Android, X86/FreeBSD, AMD64/FreeBSD, X86/Darwin 和 AMD64/Darwin (Mac OS X 10.12 2、Valgrind 安装 下载地址https://valgrind.org/downloads/current.html#current 解压后进入文件夹执行 ./configure --prefix${install_path} make -j16 make insatll 3、Valgrind 包含的工具 Memcheck 探测程序中内存管理存在的问题。它检查所有对内存的读/写操作并截取所有的malloc/new/free/delete 调用。因此 memcheck 工具能够探测到以下问题 使用未初始化的内存读/写已经被释放的内存读/写内存越界读/写不恰当的内存栈空间内存泄漏使用 malloc/new/new[] 和 free/delete/delete[] 不匹配。src 和 dst 的重叠 cachegrind cachegrind 是一个 cache 剖析器。它模拟执行 CPU 中的 L1, D1 和 L2 cache因此它能很精确的指出代码中的 cache 未命中。如果你需要它可以打印出 cache 未命中的次数内存引用和发生 cache 未命中的每一行代码每一个函数每一个模块和整个程序的摘要。如果你要求更细致的信息它可以打印出每一行机器码的未命中次 数。在 x86 和 amd64 上cachegrind 通过 CPUID 自动探测机器的 cache 配置所以在多数情况下它不再需要更多的配置信息了。 helgrind 它主要用来检查多线程程序中出现的竞争问题。Helgrind    寻找内存中被多个线程访问而又没有一贯加锁的区域这些区域往往是线程之间失去同步的地方而且会导  致难以发掘的错误。Helgrind 实现了名为”Eraser” 的竞争检测算法并做了进一步改进减少了报告错误的次数。 Callgrind Callgrind 收集程序运行时的一些数据函数调用关系等信息还可以有选择地进行cache 模拟。在运行结束时它会把分析数据写入一个文件。 callgrind_annotate 可以把这个文件的内容转化成可读的形式。 一般用法: valgrind --toolcallgrind  ./sec_infod callgrind_annotate --autoyes callgrind.out.[pid] log vi log Massif 堆栈分析器它能测量程序在堆栈中使用了多少内存告诉我们堆块堆管理块和栈 的大小。Massif 能帮助我们减少内存的使用在带有虚拟内存的现代系统中它还能够加速我们程序的运行减少程序停留在交换区中的几率。 lackey lackey 是一个示例程序以其为模版可以创建你自己的工具。在程序结束后它打印出一些基本的关于程序执行统计数据。 4、Valgrind 参数 valgrind [options] prog-and-args [options] 常用选项 --toolname 最常用的选项。运行 valgrind 中名为 toolname 的工具。默认memcheck。 -q --quiet 安静地运行只打印错误信息。 --verbose 更详细的信息。 --trace-childrenyes|no 跟踪子线程? [default: no] --track-fdsyes|no 跟踪打开的文件描述 [default: no] --time-stampyes|no 增加时间戳到 LOG 信息? [default: no] --log-fdnumber 输出 LOG 到描述符文件 [2stderr] --log-filefile 将输出的信息写入到 filename.PID 的文件里PID 是运行程序的进行 ID --log-file-exactlyfile 输出 LOG 信息到 file,LOG 信息输出 --xmlyes 将信息以 xml 格式输出只有 memcheck 可用 --db- commandcommand 启动调试器的命令行选项[gdb -nw %f %p] -leak- checkno|summary|full 要求对 leak 给出详细信息? Leak 是指存在一块没有被引用的内存空间或没有被释放的内存空间如 summary只反馈一些总结信息告诉你有多少个 malloc多少个 free 等如果是 full 将输出所有的 leaks也就是定位到某一个 malloc/free只有 memcheck 可用。 --show- reachableyes|no 如果为 no只输出没有引用的内存 leaks或指向 malloc 返回的内存块中部某处的 leaks [default: no]只有 memcheck 可用。 更详细的参数指令见 https://phenix3443.github.io/notebook/software-engineering/debug/valgrind- practices.html#org9b75b1d 5、Valgrind 使用 编译程序时开启-g选项如果没有调试信息Valgrind无法定位异常代码位置。如果待调试的是C程序考虑去掉函数内联调用开启-fno-inline这样可以更简单的查看 函数调用堆栈。或者使用Valgrind选项–read-inline-info yes可以读取内联函数的调试信 息这样即便程序使用了内联函数也能正确的显示调用堆栈信息。 关闭编译优化-O。在O1以上的优化级别下memcheck工具会误报一些未初始化值的错 误。 使用-Wall编译代码他能识别Valgrind在较高优化级别上可能会遗漏的部分。如果程序是通过脚本启动的可以修改脚本里启动程序的代码或者使用 --trace- childrenyes 选项来运行脚本。 常用内存检测命令 valgrind --log-file./valgrind_report.log --leak-checkfull --show-leak-kindsall --show- reachableno --track-originsyes ./main 输出检测报告如图 左边显示类似行号的数字10297表示的是 Process ID。中间表示 valgrind 通过运行被测试程序发现的内存问题。通过阅读这些信息可以发现 这是一个对内存的非法读操作非法写操作的内存是 8 bytes。发生错误时的函数堆栈以及具体的源代码行号。非法读操作的具体地址空间。 valgrind输出结果会报告5种内存泄露definitely lost, indirectly lost, possibly lost, still reachable, and suppressed。这五种内存泄露分析如下 definitely lost 确认丢失程序中存在内存泄露应尽快修复。 当程序结束时如果一块动态分配的内存没有被释放且通过程序内的指针变量均无法 访问这块内存则会报这个错误。 indirectly lost 间接丢失。当使用了含有指针成员的类或结构时可能会报这个错误。这类错误无需直接修复他们总是与definitely lost一起出现只要修复definitely lost即可 possibly lost 可能丢失。大多数情况下应视为与definitely lost一样需要尽快修复除非你的程序让一个指针指向一块动态分配的内存但不是这块内存起始地址然后通过运 算得到这块内存起始地址再释放它。 当程序结束时如果一块动态分配的内存没有被释放且通过程序内的指针变量均无法 访问这块内存的起始地址但可以访问其中的某一部分数据则会报这个错误。 still reachable 可以访问未丢失但也未释放。如果程序是正常结束的那么它可能不会造成程序崩溃但长时间运行有可能耗尽系统资源因此笔者建议修复它。如果程序是崩溃 如访问非法的地址而崩溃而非正常结束的则应当暂时忽略它先修复导致程序崩溃的错误然后重新检测。 suppressed 已被解决。出现了内存泄露但系统自动处理了。
http://www.yayakq.cn/news/2305/

相关文章:

  • 做旅游的网站的需求静态企业网站模板下载
  • 网站建设要写代码吗站长素材网
  • 宠物医疗设计素材网站用个人免费空间快速建立个人网站后方平台
  • 小企业网站建设在哪里wordpress 评论ip拉黑
  • 网站上的代码网页怎么做的智慧团建pc端官网
  • php开源订单管理系统杭州seo薪资水平
  • 中山市建设局安全监督站网站江苏建设人才无纸化考核网站
  • 做任务反佣金的网站wordpress 仿简书
  • 网站没被收录上海做建材上什么网站好
  • 公司营业执照可以做几个网站wordpress 忘记用户名密码
  • 网站由什么构成游戏app软件开发多少钱
  • 网站建设运维合同怎么做网页作业
  • 马鞍山专业网站制作大连网页设计培训学校
  • 做外贸兼职的网站设计软件开发工程师的就业前景
  • 深圳网站营销推广公司营销型网站重要性
  • 网站开发文档范例国信网络模版网站建设方案相关
  • 网站报错401校园风景网页设计图片
  • 龙岗附近网站建设东莞app开发商
  • 百度建网站要多少钱自己做的网站谁来维护
  • 英文购物网站模板珠海网站建设怎么样
  • 网站开发技术服务费合同范本目前最新的营销模式有哪些
  • 大型网站 解决方案 技术注册公司的条件和费用
  • 程序员做游戏还是做网站好互联网门户网站
  • 1688做网站多少钱做网站软件 手机
  • 湖南省工程建设信息官方网站胶州网站建设平台
  • 微信公众号可以做微网站商城网站建设4262
  • 网站移动端优化工具乐清柳市阿里巴巴做网站的
  • 克隆网站模板重庆网站建设公司招聘
  • 免费下载建设银行官方网站下载做标签这个网站刷单安全吗
  • 简单免费自建网站365网站建设