我是 Visual Studio 的新手,在 VS 2010 C++ 项目中遇到访问冲突错误。访问冲突错误有时将我指向“free.c”微软文件,有时指向项目代码片段。问题是,代码不是我的,但我必须在其中实现一两件事。所以问题是:如何追踪访问冲突根源的确切代码段?
如果有人感兴趣:我正在使用 OSG 和 Qt,尝试创建新线程以在后台运行 OSG 渲染。在简单的例子中(只是 3d 模型 + qt 按钮)一切正常,但是当我尝试在项目中实现 Qt 按钮时,它不断给我访问冲突
感谢您的时间!
编辑:
- 这是黄色箭头指向ntdll.dll!77972c39() 的地方
- [下面的帧可能不正确和/或丢失,没有为 ntdll.dll 加载符号]
- kernel32.dll!7776c3d4()
- 这是绿色箭头指向的地方msvcr100.dll!free(void * pBlock) 第 51 行 C
- osg75-osg.dll!52f245f1()
- osg75-osg.dll!52f2785e()
- osg75-osgQtd.dll!osgQt::QGraphicsViewAdapter::assignImage(unsigned int i) 第 565 行 + 0x59 字节 C++
- osg75-osgQtd.dll!osgQt::QGraphicsViewAdapter::setFrameLastRendered(const osg::FrameStamp * frameStamp) 第 477 行 C++
- osg75-osgQtd.dll!osgQt::QWidgetImage::setFrameLastRendered(const osg::FrameStamp * frameStamp) 第 54 行 C++
- osg75-osgViewer.dll!545b5a2e()
- osg75-osgUtil.dll!52c8b6a3()
- msvcr100.dll!malloc(unsigned int size) 第 89 行 + 0x3b 字节 C
- msvcr100.dll!operator new(unsigned int size) 第 59 行 + 0x8 字节 C++
- osg75-osg.dll!52eac085()
- ..blah blah 调用 osg dll 和其他东西..
同时发现问题不仅出现在我尝试创建新线程时,而且出现在更多不同的情况下(即使我尝试向根组添加一些东西),所以我真正需要的是捕捉导致访问冲突的原因