最新要闻
- 环球新消息丨OpenAI创始人:AI可能毁灭人类 必须开发新技术来解决
- 焦点速递!美亚柏科:公司将对各类 AIGC 内容的检测、AI 生成文本的检测技术及产品进行布局
- 绿牌将会取消?网友:走好不送
- 一图看懂Note 12 Turbo:性价比进行到底 16+1TB仅售2599元
- 一加李杰:用户不会被蒙蔽 将旗舰体验普及到底
- 视讯!哈迷必备!Redmi Buds 4哈利波特版图赏
- 首发第二代骁龙7+!Redmi Note 12 Turbo图赏
- 甲流吃退烧药不退烧怎么办_吃了一粒退烧药多久可以喂奶
- 环球今日报丨卢伟冰:Note系列全球销量破3.2亿 进入全球单品十强
- 头条:马斯克为何没做出ChatGPT?揭秘OpenAI创始人的权力斗争
- 日本推出佛祖版ChatGPT:已经为20多万人解决烦恼
- 观天下!合资车还咋玩!奇瑞艾瑞泽5 GT上市:起售价仅7.99万
- 每日快报!Redmi Note 12 Turbo搭载超细四窄边直屏:边框窄至1.42mm!
- 全球资讯:德创环保:宁波甬德拟以1.61亿元收购飞乐环保100%股权
- 每日讯息!12306回应免费坐高铁:积分存在有效期
- 环球即时看!甄子丹主演!《疾速追杀4》豆瓣8.2分:纯粹动作爽片 超越前作
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
全球热头条丨【Visual Leak Detector】配置项 ReportFile
说明
使用 VLD 内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍 VLD 配置文件中配置项 ReportFile 的使用方法。同系列文章目录可见 《内存泄漏检测工具》目录
(资料图片仅供参考)
目录- 说明
- 1. 配置文件使用说明
- 2. 设置输出文件的路径
- 2.1 测试代码
- 2.2 ReportFile 为空时的输出
- 2.3 ReportFile 指定中文文件名时的输出
- 2.3 ReportFile 指定中文路径时的输出
- 2.5 输出结果对比
1. 配置文件使用说明
在程序中通过 #include "vld.h"
的方式检测内存泄漏时,VLD 首先会尝试在程序的生成目录下读取 vld.ini
文件,若未读取成功,则会尝试在 VLD 的安装目录下读取 vld.ini
文件,若仍未读取成功,则会使用内置的默认配置,内置的默认配置如果不动源码是无法更改的,因此通过修改相应目录下的 vld.ini
文件来定制 VLD 功能是最好的选择。当配置参数等号右边为空,或者给配置了不合法值时,在使用过程中会被程序重置到默认值。
2. 设置输出文件的路径
参数名:ReportFile
。
有效赋值:合法且包含文件名的文件路径。
默认值:.\memory_leak_report.txt
。
功能说明:当 ReportFile = file
或 ReportFile = both
时,这个配置项才能起到作用,设置报告输出的文件路径及文件名,这个路径可以是绝对路径,也可以是相对路径,默认路径是生成目录,默认文件名是 memory_leak_report.txt
。
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 配置文件除了对该参数做修改外,还将 ReportFile
设置为 file
,测试工程所在路径为:E:\Cworkspace\Qt 5.9\QtDemo\testVLD
。
2.2 ReportFile 为空时的输出
标准输出窗显示:
ptr = 01027298, *ptr = 00000001.
VLD 输出报告(控制台):
Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
VLD 输出报告(文件 memory_leak_report.txt
):
Visual Leak Detector Version 2.5.1 installed. Outputting the report to E:\Cworkspace\Qt 5.9\QtDemo\build-testVLD-Desktop_Qt_5_9_2_MSVC2015_32bit-Debug\memory_leak_report.txtWARNING: Visual Leak Detector detected memory leaks!---------- Block 1 at 0x01027298: 4 bytes ---------- Leak Hash: 0x78A7E46A, Count: 1, Total 4 bytes Call Stack (TID 27760): 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 ReportFile 指定中文文件名时的输出
设置如下:
ReportFile = E:\Cworkspace\Qt 5.9\QtDemo\中文文件.txt
标准输出窗显示:
ptr = 00dea598, *ptr = 00000001.
VLD 输出报告(控制台):
Visual Leak Detector read settings from: D:\Program Files (x86)\Visual Leak Detector\vld.ini
在路径 E:\Cworkspace\Qt 5.9\QtDemo
下生成了以下文件,中文文件名乱码了。
VLD 输出报告(文件中),文件内容没有乱码:
Visual Leak Detector Version 2.5.1 installed.WARNING: Visual Leak Detector detected memory leaks!---------- Block 1 at 0x00DEA598: 4 bytes ---------- Leak Hash: 0x78A7E46A, Count: 1, Total 4 bytes Call Stack (TID 21832): 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 ReportFile 指定中文路径时的输出
设置如下:
ReportFile = E:\Cworkspace\Qt 5.9\QtDemo\中文路径\test.txt
标准输出窗显示:
ptr = 00cfb310, *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 0x00CFB310: 4 bytes ---------- Leak Hash: 0x78A7E46A, Count: 1, Total 4 bytes Call Stack (TID 10592): 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.
在指定路径下并没有找到输出报告,因此中文路径在 VLD 里面是不合法的,输出被重置到了控制台中。
2.5 输出结果对比
- 当
ReportFile
为空时,将在生成目录下输出到文件memory_leak_report.txt
中。 - 当
ReportFile
指定中文文件名时,报告能正常输出到指定文件,但文件名会乱码。 - 当
ReportFile
指定中文路径时,报告会被重置输出到控制台,不能输出到指定文件。
关键词:
-
全球热头条丨【Visual Leak Detector】配置项 ReportFile
使用VLD内存泄漏检测工具辅助开发时整理的学习笔记。本篇介绍VLD配置文件中配置项ReportFile的使用方法。
来源: -
环球通讯!融创百亿美元境外债务重组成功在即 持债金额超30%的债权人小组已签订重组支持协议
3月28日,融创发布公告,针对90 48亿美元的境外债务重组,已与境外债权人小组订立重组支持协议,拟就境...
来源: 世界头条:用gpt4训练一个简易真人代理
全球热头条丨【Visual Leak Detector】配置项 ReportFile
环球通讯!融创百亿美元境外债务重组成功在即 持债金额超30%的债权人小组已签订重组支持协议
环球新消息丨OpenAI创始人:AI可能毁灭人类 必须开发新技术来解决
焦点速递!美亚柏科:公司将对各类 AIGC 内容的检测、AI 生成文本的检测技术及产品进行布局
聚焦:免费Midjourney AI绘画Prompt提示词平台合集
NCNN 模型推理详解及实战
基于中断的字符串动态显示
全球热推荐:[NOI1999] 生日蛋糕
绿牌将会取消?网友:走好不送
一图看懂Note 12 Turbo:性价比进行到底 16+1TB仅售2599元
一加李杰:用户不会被蒙蔽 将旗舰体验普及到底
视讯!哈迷必备!Redmi Buds 4哈利波特版图赏
首发第二代骁龙7+!Redmi Note 12 Turbo图赏
设备树的概念(四):平台设备驱动和设备树
天天最资讯丨Apache iotdb-web-workbench 认证绕过漏洞(CVE-2023-24829)
Halcon学习教程(一) 之提取十字线中心 图像分割
甲流吃退烧药不退烧怎么办_吃了一粒退烧药多久可以喂奶
环球今日报丨卢伟冰:Note系列全球销量破3.2亿 进入全球单品十强
头条:马斯克为何没做出ChatGPT?揭秘OpenAI创始人的权力斗争
日本推出佛祖版ChatGPT:已经为20多万人解决烦恼
观天下!合资车还咋玩!奇瑞艾瑞泽5 GT上市:起售价仅7.99万
每日快报!Redmi Note 12 Turbo搭载超细四窄边直屏:边框窄至1.42mm!
热消息:一篇文章带你了解面积图
京沪杭等地近期明确将有序放开设摊、允许外摆
全球资讯:德创环保:宁波甬德拟以1.61亿元收购飞乐环保100%股权
每日讯息!12306回应免费坐高铁:积分存在有效期
环球即时看!甄子丹主演!《疾速追杀4》豆瓣8.2分:纯粹动作爽片 超越前作
男子求职竟被要求在杭州本地买房 网友:不是招员工是招客户
环球微动态丨试过网易的新AI后 我发现它很笨 但又很聪明
广汽传祺GS4追尾后定损巡航坏了?保险公司不想理赔
记录--vue刷新当前页面
全球关注:借助 mperf 进行矩阵乘法极致优化
MySQL学习笔记-存储引擎
当前看点!低代码起势,开发者可以早日脱离996了?
今日热议:南钢股份:钢材销量同比下降6.28%,2022年年归母净利润同比下滑48.59%,拟10派2.5元
快讯:《生化危机4:重制版》D加密惹争议 又导致性能问题了
全球观热点:女子地铁照被AI一键脱衣传播 网友:无下限的开发
每日焦点!网友准备冲Redmi Note 12 Turbo哈利·波特版:预算3900元
头条:男子乘错出租车 起步1秒被强制收费6元:走了不到10米
【世界新视野】内存掉入无底洞:没有最便宜 只有更便宜
环球观天下!32、K8S-配置管理之Configmap
世界看点:Python中21道个程序小练习
css设置超过固定长度以省略号显示
全球看点:乒乓球技巧训练这就是高手的水准_乒乓球技巧
全球简讯:瑞银:看好亚股增长潜力 偏好亚洲投资级债券
Twitter将上线离谱新规:非会员甚至无法参与投票
热头条丨九识自动驾驶物流车被曝闯红灯 网友:该怎么记分处罚
速读:“网红”威震天在北京环球影城摔了一跤 客服回应:后续演出正常
【环球新要闻】一个时代结束了!Wii U和3DS在线商店已正式关闭
实时:透明外壳设计!Nothing Ear(2)无线耳机上市 999元
热资讯![HTML]表单标签(form表单域、input输入表单、label标签、select下拉表单、textarea文本域)
C#List的3种排序方法
环球观焦点:韩国有意解禁福岛水产品?在野党呼吁韩总统表态
全球新资讯:收评:两市震荡走弱沪指跌0.19% 人工智能概念冲高回落
全球热头条丨想玩必须升级!Steam将于2024年终止对Win7/8/8.1系统支持
中国科学家发现月球水库 估计蓄水量多达2700亿吨
父母做生意给儿子取名为顾客 当事人:家里有个“顾客”能带来更多顾客
世界最高安全标准 我国自研核电华龙一号西部首堆全面建成
【时快讯】249元 TP-LINK推出新款玄鸟AX3000路由器:3000Mbps满血Wi-Fi 6
观热点:Rust 备忘清单_开发速查表分享
即时焦点:郑州大学河南先进技术研究院2023年硕士研究生拟调剂信息公告已公布
天天热点评!国服一步步被掏空 暴雪国际服支持微信支付宝:价格全面上涨
vivo X Fold2将在博鳌亚洲论坛首秀:采用“天圆地方·两仪万象”设计
每日资讯:网信办:全面清理虚假摆拍短视频
环球观热点:如何应对上手英文工具站的 8 大误区
小程序的车载场景应用
【Visual Leak Detector】配置项 ReportEncoding
数据建模
世界要闻:在.NET7使用NPOI读取Excel如此简单
每日简讯:西门子医疗Syngo Carbon助力贵安医院打破数据孤岛,加速智慧医院建设
每日快播:谁是更好的甜点处理器?锐龙5 7600、酷睿i5-13400对比评测:游戏差距大到不敢相信
终于结束了 特斯拉“退一赔三”案二审败诉后申请再审:法院驳回
笔记本电脑排风扇声音大是怎么回事?笔记本电脑排风扇声音大怎么解决?
nova6最严重的缺点是什么?nova6参数详细价格
哈尔滨有几个电脑城?哈尔滨电脑城地址
折旧率是什么意思?折旧率计算公式
全球今头条!Go语言:通过TDD驱动测试开发为同事写的程序优化提速——初次接触并发与channel
【世界时快讯】非看不可的Redis持久化
选择排序
速递!【Visual Leak Detector】配置项 MaxTraceFrames
flash8怎么下载到电脑上?Flash8的序列号是多少?
大连地铁敞门行驶 线路刚开12天:客服称“原因正在调查”
快资讯丨00后女生毕业当猪场保育员:她认为这行业很有潜力
世界快资讯丨微软反戈一击 反垄断战火引至日本本土
当前头条:东南亚出游降温:机票降幅达40%
环球新动态:机器学习基础06DAY
数据密集型应用存储与检索设计
当前头条:范畴论:迷人的数学花园
环球观天下!智能存储重磅上线:低成本闲时转码
【天天快播报】促消费,振内需,康佳加速业务高质量发展
世界第一名宇航员!尤里·加加林坠机遇难地点照片首次公开
每日看点!真的可以免费坐高铁了!用12306积分兑换:官方教程收好
焦点速递!杭州地铁现打工人专线 网友:通勤都不让闲着
环球观察:《指环王:力量之戒》片场马匹死亡 动保组织谴责:剥削动物
魅族20系列大杯曝光:120Hz E6直屏、12GB+512GB组合
焦点快报!实验一 密码引擎-2-电子钥匙功能测试
CNStack 虚拟化服务:实现虚拟机和容器资源的共池管理
每日视讯:ChatGPT软件技术栈解密
天天微速讯:具有FTP、FTPS和sftp功能的文本编辑器——EditPlus功能介绍