在Clion中使用valgrind检测QT应用程序启动失败的解决方法
网上搜索到的是需要在当前shell中export一下一个全局变量:
export LIBGL_ALWAYS_SOFTWARE=1
但是我是想在IDE中使用,最后发现/usr/bin/valgrind是一个wrapper脚本,所以只要在里面添加这个export的动作即可:
#!/bin/sh -e
#
# Valgrind wrapper
# Default Debian debug libraries.
DBGPATH=/usr/lib/debug
# Use debug libraries if found.
if [ -z "$LD_LIBRARY_PATH" ]; then
export LD_LIBRARY_PATH="$DBGPATH"
else
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$DBGPATH"
fi
# Force C++ STL to use malloc and to free memory by disabling
# memory caching.
# For gcc < 3.4 versions
export GLIBCPP_FORCE_NEW=1
# For gcc >= 3.4 versions
export GLIBCXX_FORCE_NEW=1
# For Qt App run with valgrind <-----------------增加这个即可
# 应该要通过clion设置一个valgrind的特殊参数,表示是从clion启动,所以需要export
# 下面的环境变量,否则不做任何动作。
export LIBGL_ALWAYS_SOFTWARE=1
# Use 'exec' to avoid having another shell process hanging around.
exec $0.bin "$@"