首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpenSceneGraph C++访问冲突读取位置0x00421000

OpenSceneGraph C++访问冲突读取位置0x00421000
EN

Stack Overflow用户
提问于 2012-11-07 08:32:45
回答 3查看 1.5K关注 1票数 1

使用OpenSceneGraph时,我会一直遇到这个违规问题,我希望能得到一些帮助。问题在于下面这一行恰好是我主要功能中的第一行。

代码语言:javascript
代码运行次数:0
运行
复制
 osg::ref_ptr<osg::Node> bench = osgDB::readNodeFile("Models/test.IVE");

我的模型文件夹就在我的目录里。错误如下所示。

在OSG3D.exe: 0xC0000005:访问冲突读取位置0x00421000.中0x68630A6C (msvcr100.dll)处未处理的异常

这就是问题出现的地方。

代码语言:javascript
代码运行次数:0
运行
复制
/** Read an osg::Node from file. 
  * Return valid osg::Node on success,
  * return NULL on failure.
  * The osgDB::Registry is used to load the appropriate ReaderWriter plugin
  * for the filename extension, and this plugin then handles the request
  * to read the specified file.*/
inline osg::Node*  readNodeFile(const std::string& filename)
{
    return readNodeFile(filename,Registry::instance()->getOptions());
}

我想知道如何在未来最好地处理这种异常信息的细节。是否有使调试变得容易的工具,或者是否有方法捕获确切的问题并修复它们?如果能帮忙,我会很感激的。

我的最终目标是学习如何更好地调试C++相关问题。这样,就意味着只读取编译器错误列表http://msdn.microsoft.com/en-us/library/850cstw1(v=vs.71).aspx是不够的。

EN

回答 3

Stack Overflow用户

发布于 2013-12-03 11:26:04

经过测试,我们发现

  • 您正在以调试模式编译代码,但使用发布libs/dll或
  • 您正在以发布模式编译代码,但使用调试libs/dll。

因此,只需使用调试osg进行调试构建,发布版本用于发布构建,即可完成。

票数 1
EN

Stack Overflow用户

发布于 2012-11-29 23:41:59

我很幸运地通过使用诸如Application (来自微软)之类的工具来解决类似的问题。GFlags和类似的工具也很好。

应用程序验证程序安装简单,然后将其指向您的exe并在Visual中运行应用程序。当问题发生时,它将在发现问题的地方破坏应用程序。这可能是也可能不是问题发生的地方(虽然我在刚开始的时候就幸运地着陆了),但应该更容易看到可能发生的事情。

你能打开这个节目吗?微软将其安装在C:\Windows\System32\appverif.exe中。运行它时,可以选择文件以及要调试的内容。在您的情况下,请选择与内存相关的选项。激活,它会告诉您现在应该在Visual中运行它。因此,在Visual中运行您的程序,应该有助于在错误发生的位置(或附近)停止您的程序。谷歌应用程序验证器。有一些很好的教程。

票数 0
EN

Stack Overflow用户

发布于 2012-12-04 04:55:33

请执行下列故障排除:

  1. 检查模型文件夹在哪里,假设您应该在调试或释放文件夹下复制它,因为它们是默认的执行路径。
  2. 在读取节点文件之前添加一些保护代码,必须在读取该文件之前确保该文件的存在。
  3. 直接构造ReaderWriter::Options,并替换Registry::instance()->getOptions(),并查看问题是否仍然存在。

我认为合同式设计是避免大多数此类问题的好办法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13265819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档