Я как бы новичок в Visual Studio, и я получаю сообщение об ошибке нарушения прав доступа в проекте VS 2010 C ++. Ошибка нарушения прав доступа иногда указывает мне на файл microsoft "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 (размер целого числа без знака) Строка 89 + 0x3b байт C
- msvcr100.dll! оператор new (размер целого числа без знака) Строка 59 + 0x8 байт C ++
- osg75-osg.dll! 52eac085 ()
- ..бла-бла, вызов DLL-файлов osg и т. д.
Тем временем выяснилось, что проблема возникает не только тогда, когда я пытаюсь создать новый поток, но и в нескольких других различных ситуациях (даже когда я пытаюсь добавить что-то в корневую группу), поэтому мне действительно нужно уловить, что вызывает нарушение доступа