Freeglut 无法打开 Valgrind 的显示器
freeglut fails to open display with valgrind
我正在使用Valgrind插件在Ubuntu 12.04上运行Eclipse IDE。我在C++中开发一款游戏已经有一段时间了,但我似乎在某处出现了内存错误。通常,我用瓦尔格林德追踪这些。但是,当我运行 valgrind 时,glut 无法初始化。我应该注意,当我不使用 valgrind 时,游戏初始化没有问题。我的主函数的代码如下:
int main(int argc, char** argv) {
char windowTitle[12] = "Game Window";
printf("Initializing Glut...n");
glutInit(&argc, argv);
printf("Glut initialized!n");
alutInit(&argc, argv);
Game_Object* game = new Game_Object(windowTitle, 1200, 675, argc, argv);
delete game;
printf("game endedn");
return 0;
}
控制台的结果输出为:
Initializing Glut
freeglut (/home/dsnettleton/Documents/Programming/Eclipse/workspace/Plutoids/Debug/Plutoids): failed to open display ''
显然,随着valgrind的运行,该程序并没有走得太远。处于我发展的最后阶段,却在试图清除记忆错误时陷入困境,这真的很令人沮丧。什么可能会阻止 glut 初始化,我该怎么做才能解决问题?
这是我
的猜测:您的 IDE 可能缺少$DISPLAY
环境变量。在启动 Valgrind 之前,您必须在某个地方配置环境以设置$DISPLAY
。
启动终端并echo $DISPLAY
.它的价值可能是 :0.0
.
最坏的情况下,我会尝试在 C 代码中使用 setenv()
或在启动 Valgrind 的命令行中设置 DISPLAY(这些情况都没有经过测试,它们可能不起作用)。
此外,您必须在 Eclipse 中添加此环境变量 DISPLAY:=0.0。在可执行文件的启动配置中,将 Display 变量添加到"环境"选项卡,或选择继承环境。
运行->运行配置...->环境
现在点击
新增功能
并添加
显示 :0
在其中
相关文章:
- valgrind-hellgrind与泄漏检查的结果不同
- 额外分配valgrind
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- 如何在qt中同步应用程序和显示器的刷新率?
- Valgrind:可以处理更多可能丢失的字节吗?
- 如何在程序执行时查看Valgrind Massif输出(或其他堆分析器)?
- C++/Qt Valgrind 未初始化的字节
- 在 valgrind c++ 上读取大小 8 无效
- 了解 Linux 虚拟内存:valgrind 的 massif 输出显示了有和没有 --pages-as-heap 的主要差异
- Valgrind 在 std::string::swap 中报告 SIGILL
- Valgrind 大小为 8 且地址 0x5b7e520 的读取无效,在大小为 16 的块内为 0 字节 free'd
- 重载 new 和 delete 会导致 valgrind 错误
- Valgrind 在 QThread::start() 上报告内存泄漏
- 我可以让 valgrind 告诉我 _哪个_值未初始化吗?
- 使用 valgrind 检查我的链表暗示中的内存泄漏,让我"肯定丢失:1 个块中有 40 个字节"
- Valgrind 在 std::make_unique 中显示内存泄漏
- 为什么 valgrind 报告两个内存分配,而我的代码只请求一个?
- 如何将Valgrind与Qt Creator一起使用来调试远程应用程序?
- 使用Valgrind时内存泄漏消失
- Freeglut 无法打开 Valgrind 的显示器