c++ - 如何使用 Valgrind 和 Qt Creator 调试远程应用程序?
问题描述
我有一个在 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 =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== 日志消息将被发送到标准错误。
==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 的调用。Tools->Options->Analyzer->Valgrind 似乎不允许我更改日志记录行为。
我不知道是什么导致了最后一个错误。Qt 文档让我觉得我应该做的就是按下 go 并且它应该可以工作。
任何帮助表示赞赏!
解决方案
删除选项xml-socket
,log-socket
并xml=yes
为我工作。它删除了警告并解决了断言。
推荐阅读
- android - 我可以从远程服务器运行“离子电容器运行 android”命令吗?
- dax - PowerBI - 使用 DAX 根据日期和时间维度计算每小时移动平均值
- swiftui - 为什么 .navigationTitle 接缝在设备上调试时抛出 UIViewAlertForUnsatisfiableConstraints 警告?
- python - 如何在python pyqt5上添加图像
- r - 从数据框列中提取数据框并将其放置在 R 中的父级之外
- azure-devops - Web 表单项目中的 Azure 管道构建错误
- python-3.x - 如何在不和谐中检查机器人的赞助订阅?
- javascript - 自定义模块Nodejs - 将属性设置为匿名内部函数的参数
- css - CSS - 是否可以使用列数并“强制”第二列的项目比第一列更多?
- wordpress - 我想在 WordPress 菜单中定位标签并在外面添加一个元素