动态分析

Valgrind Memcheck

运行 Valgrind Memcheck

在 Linux 和 macOS 平台上,CLion 集成了 Valgrind Memcheck,可以帮助检测内存错误。

它可以让您使用 Valgrind Memcheck 运行目标,然后 在 Run 工具窗口中的单独标签页里显示结果。 用户可以通过 Memcheck 运行 常规目标和单元测试目标。

您还可以在 Windows 上通过 WSL 工具链和远程模式使用 Valgrind。

Google Sanitizers

运行 Google Sanitizers

要在 Linux 和 macOS 平台侦测可寻址能力问题、内存泄漏、数据争用和未初始化内存问题,请在 CLion 中使用 Google Sanitizers。

假如您使用的 Clang >= 3.8.0 或 GCC >= 5.0.0,那么在通过 -fsanitize 兼容标记运行/调试应用程序或单元测试时,CLion 将在 Run 工具窗口的 Sanitizer 标签页中显示 sanitizers 输出。 它可以让您在 IDE 中审查错误和错误踪迹列表,导航至源代码,预览源代码或检查框架信息。

CPU 性能分析器

CPU 性能分析器

现在在 Linux(Perf)和 macOS(DTrace)上,CLion 与 CPU 性能分析器集成。 现在,也可在远程模式和 WSL 上分析。

您可以直接在 IDE 中运行性能分析器,在专用的工具窗口 (View | Tool Windows | CPU Profiler) 中审查分析结果。

使用火焰图、调用树和方法列表来清楚地查看代码中可能存在的性能问题。 导航至源代码来定位代码库中的问题。

了解详情

代码覆盖率

代码覆盖率

如果您曾经问过“在配置运行期间是否已执行此语句?”这个问题,这意味着您想利用 Statements Coverage 来衡量您的代码。 CLion 通过与 llvm-cov/gcov 工具的集成实现了这一功能。

除了行覆盖率,CLion 现在还可以计算 Branch Coverage。 这种方法覆盖了每个控制结构的所有分支。

您可以将它用于单元测试运行或常规配置运行。 可以在 Coverage 工具窗口中或通过编辑器左装订区域中的颜色指示查看结果。

了解详情