在Qt中,您可以集成 valgrind 来分析您的代码。我在 Analyze 模式下使用 Valgrind Function Profiler 并点击 Start 按钮。问题是,我有一个我不感兴趣的巨大启动序列。
我在 valgrind / callgrind.h 中找到了应该帮助我的定义:
根据this article,我必须使用以下选项执行 valgrind :
valgrind --tool=callgrind --instr-atstart=no ./application
但是我如何在Qt内做到这一点?我仍然想使用漂亮的GUI和导航。 谢谢!
答案 0 :(得分:1)
假设您有一个带有“main.cpp”和子文件夹“build”的项目。在“main.cpp”旁边创建一个名为“my_valgrind.sh”的文本文件,并在其中添加以下行:
#!/bin/bash
valgrind --instr-atstart=no $@ ./build/[...]
将[...]替换为可执行文件的名称。 Qt通过$ @提供剩余的参数 然后使sh文件可运行:右键单击.sh文件 - >属性 - >权限 - >允许执行为程序(或使用命令行解决方案) 也许您需要更改权限(chown [username] my_valgrind.sh)
在Qtcreator中,您转到Tools-> Options-> Analyzer并将valgrind可执行文件替换为my_valgrind.sh文件的完整路径
然后它应该工作。
重要的:
答案 1 :(得分:0)
您可以尝试我曾经使用过的这种方法。创建一个bash
脚本。
#!/bin/bash
valgrind --tool=callgrind --instr-atstart=no $@
使其成为可执行文件(chmod + x)并将其用作可执行文件Qt Creator -> Tools -> Options -> Analyzer
。
值得一试。