最新要闻
- 苹果推出的美国版花呗:被严重低估了
- 全球聚焦:为什么洗澡时总想“尿尿”?这怀习惯可不好!
- 环球信息:新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话
- 【世界报资讯】 “大号MINI”!五菱缤果正式上市:5.98万元起
- 国产特有 魔改RTX 3060显卡999元:AMD也做不到的性价比
- 天天通讯!报告:电信业采购供应链发展呈现四大趋势
- 当前速看:《生化危机4:重制版》阿什莉服装Mod公布 看了把持不住
- 天天亮点!CPU占用暴降 SSD提速百倍:《暗黑4》将支持微软DX游戏神技
- 今日热讯:关于大国竞争,“修昔底德陷阱”提出者谈到了“澶渊之盟”
- 合资轿车雪上加霜!上汽名爵最帅轿跑MG7上市:11.98万起
- 新动态:ROG游戏手机7跑分首曝:二代骁龙8 134.6万冠绝全球
- 规模或超90%!流媒体巨头Hulu国内被曝大裁员
- JOLED破产 日本OLED面板技术押错宝:弯道超车失败
- 当前动态:骁龙8cx Gen 4处理器跑分曝光:12核性能大跌眼镜 仅苹果M2 Max 1/3
- 焦点!一排小草怎么画简单好看_一排小草怎么画简笔画
- 当前快讯:Win12正全力开发!微软重构操作系统底层:模块化设计
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
【Visual Leak Detector】配置项 TraceInternalFrames
说明
使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 配置文件中配置项 TraceInternalFrames 的使用方法。同系列文章目录可见 《内存泄漏检测工具》目录
【资料图】
目录- 说明
- 1. 配置文件使用说明
- 2. 设置是否跟踪内部堆栈的调用
- 2.1 测试代码
- 2.2 TraceInternalFrames = no 时的输出
- 2.3 TraceInternalFrames = yes 时的输出
- 2.4 输出结果对比
1. 配置文件使用说明
在程序中通过 #include "vld.h"
的方式检测内存泄漏时,VLD 首先会尝试在程序的生成目录下读取 vld.ini
文件,若未读取成功,则会尝试在 VLD 的安装目录下读取 vld.ini
文件,若仍未读取成功,则会使用内置的默认配置,内置的默认配置如果不动源码是无法更改的,因此通过修改相应目录下的 vld.ini
文件来定制 VLD 功能是最好的选择。当配置参数等号右边为空,或者给配置了不合法值时,在使用过程中会被程序重置到默认值。
2. 设置是否跟踪内部堆栈的调用
参数名:TraceInternalFrames
。
有效赋值:yes
,no
。
默认值:no
。
功能说明:设置是否跟踪内部堆栈的调用。包含 Visual Leak Detector的内部调用堆栈、C/C++及 Win32 API的内部调用堆栈,这些内部堆栈的调用信息对检测内存泄漏是没有帮助的,默认会在堆栈跟踪期间跳过这些信息,这在一定程度上减少了检测所花费的时间。但包含 Visual Leak Detector的内部调用堆栈,对于调试 VLD 自身是十分有用的。
2.1 测试代码
#include #include "vld.h"void testFun(int i){ int *ptr = new int(i); printf("ptr = %08x, *ptr = %08x.\n", ptr, *ptr);}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); testFun(1); return a.exec();}
测试环境:QT 5.9.2,MSVC 2015 32bit,Debug模式,VLD 版本为 2.5.1,VLD 配置文件只对该参数做修改,测试工程所在路径为:E:\Cworkspace\Qt 5.9\QtDemo\testVLD
。
2.2 TraceInternalFrames = no 时的输出
标准输出窗显示:
ptr = 010bbda0, *ptr = 00000001.
VLD 输出报告:
Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.iniVisual Leak Detector Version 2.5.1 installed.WARNING: Visual Leak Detector detected memory leaks!---------- Block 1 at 0x010BBDA0: 4 bytes ---------- Leak Hash: 0x80192F03, Count: 1, Total 4 bytes Call Stack (TID 23280): ucrtbased.dll!malloc() f:\dd\vctools\crt\vcstartup\src\heap\new_scalar.cpp (19): testVLD.exe!operator new() + 0x9 bytes e:\cworkspace\qt 5.9\qtdemo\testvld\main.cpp (6): testVLD.exe!testFun() + 0x7 bytes e:\cworkspace\qt 5.9\qtdemo\testvld\main.cpp (14): testVLD.exe!main() + 0x7 bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (74): testVLD.exe!invoke_main() + 0x1B bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (264): testVLD.exe!__scrt_common_main_seh() + 0x5 bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (309): testVLD.exe!__scrt_common_main() f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp (17): testVLD.exe!mainCRTStartup() KERNEL32.DLL!BaseThreadInitThunk() + 0x19 bytes ntdll.dll!RtlGetAppContainerNamedObjectPath() + 0x11E bytes ntdll.dll!RtlGetAppContainerNamedObjectPath() + 0xEE bytes Data: 01 00 00 00 ........ ........Visual Leak Detector detected 1 memory leak (40 bytes).Largest number used: 40 bytes.Total allocations: 40 bytes.Visual Leak Detector is now exiting.
2.3 TraceInternalFrames = yes 时的输出
标准输出窗显示:
ptr = 01247be0, *ptr = 00000001.
VLD 输出报告:
Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.iniVisual Leak Detector Version 2.5.1 installed. Including heap and VLD internal frames in stack traces.WARNING: Visual Leak Detector detected memory leaks!---------- Block 1 at 0x01247BE0: 4 bytes ---------- Leak Hash: 0x80192F03, Count: 1, Total 4 bytes Call Stack (TID 28424): ntdll.dll!RtlAllocateHeap() f:\dd\vctools\crt\vcstartup\src\heap\new_scalar.cpp (19): testVLD.exe!operator new() + 0x9 bytes e:\cworkspace\qt 5.9\qtdemo\testvld\main.cpp (6): testVLD.exe!testFun() + 0x7 bytes e:\cworkspace\qt 5.9\qtdemo\testvld\main.cpp (14): testVLD.exe!main() + 0x7 bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (74): testVLD.exe!invoke_main() + 0x1B bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (264): testVLD.exe!__scrt_common_main_seh() + 0x5 bytes f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl (309): testVLD.exe!__scrt_common_main() f:\dd\vctools\crt\vcstartup\src\startup\exe_main.cpp (17): testVLD.exe!mainCRTStartup() KERNEL32.DLL!BaseThreadInitThunk() + 0x19 bytes ntdll.dll!RtlGetAppContainerNamedObjectPath() + 0x11E bytes ntdll.dll!RtlGetAppContainerNamedObjectPath() + 0xEE bytes Data: 01 00 00 00 ........ ........Visual Leak Detector detected 1 memory leak (40 bytes).Largest number used: 40 bytes.Total allocations: 40 bytes.Visual Leak Detector is now exiting.
2.4 输出结果对比
- 当
TraceInternalFrames = no
时,调用堆栈顶部是ucrtbased.dll!malloc()
。 - 当
TraceInternalFrames = yes
时,调用堆栈顶部是ntdll.dll!RtlAllocateHeap()
。
关键词:
-
【Visual Leak Detector】配置项 TraceInternalFrames
使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍VLD配置文件中配置项TraceInternalFrames的使用方法。
来源: 天天新资讯:Ubuntu18.04系统安装nginx
天天速递!手撕HashMap(二)
【Visual Leak Detector】配置项 TraceInternalFrames
苹果推出的美国版花呗:被严重低估了
全球聚焦:为什么洗澡时总想“尿尿”?这怀习惯可不好!
环球信息:新一代高贵“亮机卡”!RTX 4050被曝6月发布:弱得不像话
【世界报资讯】 “大号MINI”!五菱缤果正式上市:5.98万元起
国产特有 魔改RTX 3060显卡999元:AMD也做不到的性价比
天天通讯!报告:电信业采购供应链发展呈现四大趋势
【独家】【Visual Leak Detector】配置项 StartDisabled
78.类型转换
环球快报:2023年找工作的心酸历程
全球热议:ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
世界即时看!SSM框架笔记 庆祝学习SSM框架结束!!!
世界速读:【财经分析】债市短期表现向好 机构操作犹存分歧
当前速看:《生化危机4:重制版》阿什莉服装Mod公布 看了把持不住
天天亮点!CPU占用暴降 SSD提速百倍:《暗黑4》将支持微软DX游戏神技
具体如何编写信号与槽
今日热讯:关于大国竞争,“修昔底德陷阱”提出者谈到了“澶渊之盟”
合资轿车雪上加霜!上汽名爵最帅轿跑MG7上市:11.98万起
新动态:ROG游戏手机7跑分首曝:二代骁龙8 134.6万冠绝全球
规模或超90%!流媒体巨头Hulu国内被曝大裁员
JOLED破产 日本OLED面板技术押错宝:弯道超车失败
当前动态:骁龙8cx Gen 4处理器跑分曝光:12核性能大跌眼镜 仅苹果M2 Max 1/3
【世界速看料】76.算术运算符
世界动态:PfSense pfBlockerNG 未授权RCE漏洞(CVE-2022-31814)
热点!Unity中基于EPPLUS的Excel转换以及Json数据读取
全球速讯:c# 对序列化类XMLSerializer 二次封装泛型化方便了一些使用的步骤
新华社权威快报|首次纳入肝素类药品 第八批药品集采平均降价56%
焦点!一排小草怎么画简单好看_一排小草怎么画简笔画
当前快讯:Win12正全力开发!微软重构操作系统底层:模块化设计
【新视野】宣称能跑100公里!男子网购电动车续航打折:法院判退一赔三
全球快资讯:“雪糕刺客”的仁慈!钟薛高用文心一言打造雪糕 仅售3.5元
即时看!口腔溃疡总不好 可能是大病预警!“偏方”都没用!
今日讯!比5G强10倍!工信部:中国已成立6G工作组推动关键技术研究
pthread库实现简单并行程序:Hello
全球焦点!日本央行官员暗示调整YCC政策 日债收益率周三全线回落
全球快资讯:净利润同比增长超62% 中国石油2022年业绩创历史最好水平
全球视点!韩瑟冻干粉怎么样_韩瑟化妆品怎么样
果然来了!电商偷跑索尼PS5 Slim游戏机:新外观 更轻薄
全球热头条丨SSD性能狂飙 追赶DDR5内存 PCIe 6.0硬盘预计2026年问世
听到吧唧嘴就抓狂:一男子已4年不理家人
头条:德国掀桌 欧盟让步 “2035禁燃令”为何不再禁燃油车?
男子测智商竟被推荐花98元包月:付了钱也没看到结果
【独家焦点】郑氏点银:黄金有望震荡冲1980,原油背离逼空反弹待回落
【天天快播报】记录--开局一张图,构建神奇的 CSS 效果
java泛型和通配符
环球微资讯!玩家期待已久!任天堂限定版Switch来了
全球今日报丨不拍蒜也断?张小泉斩骨刀斩骨时断裂 客服:与使用力度、角度有关
车被撞废人完好无损!比亚迪汉DM-i车主转头定了一台海豹
环球快资讯丨为何Redmi敢首发高通第二代骁龙7+?员工解释原因
男子驾车途中昏迷撞走公司大门 罪魁祸首竟是一只马蜂
全球看热讯:惠州治皮肤过敏较好的医院
全球微头条丨用 Go 剑指 Offer 07. 重建二叉树
快资讯:IDEA使用技巧和注册教程
全网最详细中英文ChatGPT-GPT-4示例文档-最强JS助手聊天机器人应用从0到1快速入门——官网推荐的48种最佳应用场景(附python/node.js/
全球快看点丨下载安装MyAQL数据库8.0.30
NX二次开发:Checkmate例子根据dfa文件检查模型数据
天天即时看!广东佛山发生3.4级地震 广州有震感!你感受到没
环球微动态丨火狐良心!至少支持Win7/8.1到2024年第3季度
天天快看点丨质量堪忧 多批次行车记录仪抽检不合格 纽曼上黑榜
天天通讯!360版ChatGPT要来了!周鸿祎:大家给起个名字
焦点简讯:男子回应合成迪丽热巴视频来龙去脉:不想跟其他博主同质化
即时:钟薛高推出3.5元雪糕上市时间
MySQL的安装
世界资讯:python中函数的返回值详解
环球速读:关于Web的欢迎页面的开发设置
焦点热讯:Whats's New In Seata 1.6.x
环球短讯!Powerpoint教程_编程入门自学教程_菜鸟教程-免费教程分享
热点评!首批两只新能源领域REITs上市首日均收涨
头条:前搜狗CEO王小川成立人工智能公司:中国需要自己的OpenAI
观速讯丨美团回应限制大龄外卖骑手:入职年龄并未调整 能干到57岁
环球快报:经济学家林毅夫:AI可让人们享受生活 未来每周只工作一天
历史上首次!佳能将推可自动对焦的移轴镜头
全球热点!关注!有答复了,《关于加快发展文化创意产业,培育福鼎经济新亮点的建议》。
lmxcms代码审计学习
【天天播资讯】0功耗电子纸数字海报问世:不换画面不耗电
今日视点:30年大品牌 金邦2TB SSD到手549元:长寿TLC+PCIe 4.0性能
中国高铁首次出海!雅万高铁全线轨道铺通:最高时速350公里
每日报道:比亚迪汽车毛利率25.9%!李想夸赞:比特斯拉强太多
全球速递!俄亥俄河一载1400吨有毒物质驳船沉没:尚不清楚是否发生泄漏
世界报道:太极股份:截止2023年3月20日,公司的股东户数为36798户
Go语言:编写一个 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果
全球实时:一文带你搞懂如何优化慢SQL
焦点快报!Dijkstar-And-Astar算法
用上ChatGPT的这几个功能,你的开发效率不高都难
联想y400什么时候上市的?联想y400笔记本配置
地下城与勇士龙年套装哪个好?地下城与勇士龙年套装有几个宝珠?
HTCG28什么时候上市的?HTCG28手机参数
华为C8813Q如何装sim卡?华为C8813Q手机参数
gprs套餐费是什么意思?怎么关闭GPRS套餐?
楼市回暖背后:多城二手房在售量持续增加
环球关注:编写高质量c#代码的10个建议
环球即时看!插入排序
【世界速看料】【Visual Leak Detector】配置项 StackWalkMethod
环球新消息丨vivo将整合旗下iQOO手机:开启降本增效
王传福:比亚迪目标年底成为中国最大汽车制造商
全球热讯:全球最大游戏展危险了!世嘉、腾讯均宣布不参加本届E3
绿巨人前女友15年后回归漫威!《美国队长4》新剧照曝光:黑人美队现身
环球即时看!联名高达!ROG游戏手机7系列来了:二代骁龙8+6000mAh电池