如何在CLion 2022.2.4中开启Valgrind的代码行定位显示?
WSL下CLion 2022.2.4 Valgrind无法显示问题代码行的解决办法
确保编译时生成完整调试信息
- 在项目的
CMakeLists.txt中添加set(CMAKE_BUILD_TYPE Debug),或者在CLion的Build Configuration面板中,将Build Type设置为Debug。Release模式默认会剥离调试符号,导致Valgrind无法关联到代码行。 - 确认编译选项中包含
-g参数(Debug模式默认自动添加,若手动修改过编译配置需检查未被移除)。
- 在项目的
正确配置CLion的Valgrind参数
- 打开CLion设置(
File -> Settings),进入Build, Execution, Deployment -> Valgrind。 - 确保Valgrind路径指向WSL内的正确位置,例如
/usr/bin/valgrind,不要使用Windows本地路径。 - 检查Valgrind启动参数,移除
--no-debuginfo这类禁用调试信息的选项,保留默认的调试符号解析设置。
- 打开CLion设置(
更新WSL内的Valgrind及依赖
- 在WSL终端执行
valgrind --version,若版本低于3.18,建议通过包管理器更新(如Ubuntu/Debian系执行sudo apt update && sudo apt install valgrind),旧版本对新编译器生成的调试符号支持有限。 - 安装系统库调试符号包,例如
sudo apt install libc6-dbg(针对Debian/Ubuntu),这有助于解析系统调用栈的关联代码。
- 在WSL终端执行
重新构建并运行分析
- 先执行
Build -> Clean Project清理旧构建产物,再执行Build -> Rebuild Project重新生成带调试符号的二进制文件。 - 重启Valgrind分析任务,确保使用最新的构建结果。
- 先执行
验证CLion的WSL工具链配置
- 进入
Settings -> Build, Execution, Deployment -> Toolchains,确认WSL工具链为默认选中项,且gcc、g++、cmake等工具均能被正常检测到。 - 确保本地代码与WSL内的同步目录一致,避免路径映射错误导致代码行无法关联。
- 进入
内容的提问来源于stack exchange,提问作者Jager72
相关产品推荐
相关产品推荐

