在 QApplication 中使用可视化检漏仪
Using Visual Leak Detector with a QApplication
我正在尝试定位我的 Qt 应用程序中的内存泄漏。我已经将 Visual Leak Detector 用于其他一些项目,但 VLD 将输出写入控制台 window。
我现在的问题是,当使用 QApplication 时,没有控制台 window,因此没有显示 VLD 的输出。我正在使用 Visual Studio 2015 和 Qt VS 工具插件。
有没有办法强制应用程序显示控制台window?或者将 VLD 生成的输出写入文件的方法?
我如何启动我的应用程序:
#include "mainwindow.h"
#include <vld.h>
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
正如 ssbssa 在评论中指出的那样,可以通过在 VLD 安装文件夹 vld.ini 中设置 ReportTo 和 ReportFile 来解决问题:
将ReportFile =
更改为ReportFile = memory_leak_report.txt
或类似的东西。
将 ReportTo = debugger
更改为 ReportTo = file
或 ReportTo = both
。
现在 VLD 产生的输出将被写入指定的文件。
我正在尝试定位我的 Qt 应用程序中的内存泄漏。我已经将 Visual Leak Detector 用于其他一些项目,但 VLD 将输出写入控制台 window。
我现在的问题是,当使用 QApplication 时,没有控制台 window,因此没有显示 VLD 的输出。我正在使用 Visual Studio 2015 和 Qt VS 工具插件。
有没有办法强制应用程序显示控制台window?或者将 VLD 生成的输出写入文件的方法?
我如何启动我的应用程序:
#include "mainwindow.h"
#include <vld.h>
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
正如 ssbssa 在评论中指出的那样,可以通过在 VLD 安装文件夹 vld.ini 中设置 ReportTo 和 ReportFile 来解决问题:
将
ReportFile =
更改为ReportFile = memory_leak_report.txt
或类似的东西。将
ReportTo = debugger
更改为ReportTo = file
或ReportTo = both
。
现在 VLD 产生的输出将被写入指定的文件。