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

时间:2018-08-15 21:52:23

标签: c++ qt valgrind

我有一个正在Qt Creator中开发的c ++应用程序(Qt Creator 4.7.0,Qt版本5.2.1)。该应用程序在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 =是--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。

     

valgrind:m_libcprint.c:384(prepare_sink_socket):断言'sink-> fd   == 2'失败。

     

16:27:13:分析完成。

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

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