如何将Valgrind与Qt Creator一起使用来调试远程应用程序?

How to use Valgrind with Qt Creator to debug a remote application?

本文关键字:调试 应用程序 一起 Valgrind Creator Qt      更新时间:2023-10-16

我有一个在Qt Creator(Qt Creator 4.7.0,Qt版本5.2.1(中开发的c ++应用程序。该应用程序运行在 beaglebone (debian( 上。我正在使用Qt Creator的远程调试来调试应用程序。

该应用程序有一些内存问题,所以我正在尝试使用 Valgrind 来诊断它们。每当我从Qt Creator开始Memcheck分析时,它输出的只是:

16:22:58:/usr/local/bin/valgrind --child-silent-after-fork=yes --xml-socket=10.0.2.15:38409 --log-socket=10.0.2.15:43999 --xml=yes --smc-check=all --tool=memcheck --gen-suppressions=all --track-origins=yes --leak-check=full --num-callers=25 --vgdb=yes --vgdb-error=0/home/debian/MyApp

==28159== 无法连接到日志记录服务器"10.0.2.15:37567"。

==28159== 日志记录消息将改为发送到 stderr。

==28159== 无法连接到 XML 日志记录服务器"10.0.2.15:39405"。

==28159== XML输出将发送到stderr。

瓦尔格林德: m_libcprint.c:384 (prepare_sink_socket(: 断言 'sink->fd == 2' 失败。

16:27:13:分析完成。

为了解决前两个错误,我想更改对 valgrind 的调用,以使日志记录写入文件。但是,我找不到在哪里更改Qt Creator对valgrind的调用。工具->选项->分析器->Valgrind似乎不允许我更改日志记录行为。

我不知道是什么导致了最后一个错误。Qt文档使我所要做的就是按go,它应该可以工作。

任何帮助不胜感激!

删除选项xml-socketlog-socketxml=yes对我有用。 它删除了警告并解决了断言。