我对这个错误束手无策。任何有关如何追踪它的建议将不胜感激。
背景:
我一直在尝试将 ogre3d 视图实现为 Qt5 中的 QQuickItem。有一个例子(qmlogre)表明它是可能的。示例代码需要对 Win32 进行大量重构,并且不仅仅是演示。该示例仅是概念证明。
问题:
当我在 Ogre 代码 (SceneManager::createEntity) 中调用特定方法时,Qt 项目将不再呈现。如果我注释掉对该方法的调用,它会呈现良好。如果我注释掉方法中的代码并将其替换为“return 0”,它将不再呈现。有问题的代码与图形无关(它将 3d 实体加载到内存中)。
我试过的:
- 检查显示异常的食人魔日志。
- 将 Qt 日志重定向到文件以查看警告/异常。
- 检查'this'指针。我在方法的入口处动态地将“this”转换为正在运行的类,并接收到一个非空指针。所以 rtti 认为它是一个有效的类指针。
- 为了确保 Qt 代码正确,我将 qmlogre 示例中的自定义呈现代码替换为呈现纯色矩形的代码。
- 我似乎没有内存不足
我可以在 valgrind 下运行如此庞大而复杂的东西吗?有没有类似的有用的工具?(编译器是由 Qt 在 Windows 7 上下载的 v5.1 中提供的 Mingw)
我知道 Qt5 默认是线程的。你怎么知道你是否超过了你的线程堆栈大小?
Ogre 不是线程安全的。Qt 代码是否有可能同时在不同的线程上运行并导致食人魔崩溃?我的代码由来自 QML 的事件调用(它在 Qt 插槽中)。