2

我正在尝试定位我的 Qt 应用程序中的内存泄漏。我已经将Visual Leak Detector用于其他一些项目,但 VLD 将输出写入控制台窗口。

我现在的问题是,当使用 QApplication 时,没有显示控制台窗口,因此没有显示 VLD 的输出。我正在使用带有 Qt VS Tools 插件的 Visual Studio 2015。

有没有办法强制应用程序显示控制台窗口?或者可能是一种将 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();
}
4

1 回答 1

1

正如 ssbssa 作为评论指出的那样,可以通过在 VLD 的安装文件夹中找到的 vld.ini 中设置 ReportTo 和 ReportFile 来解决问题:

  1. 更改ReportFile =ReportFile = memory_leak_report.txt或类似的东西。

  2. 更改ReportTo = debuggerReportTo = fileReportTo = both

现在 VLD 产生的输出将被写入指定的文件。

于 2017-05-19T17:35:27.847 回答