2016-07-04 1 views
-1

я получаю случайное нарушение прав доступа, когда я начинаю wxwidget приложения:atigktxx.dll в WxWidgets: «чтение нарушения прав доступа расположение 0xFEEEFEEE» (сборка выпуска)

Unhandled exception at 0x0267894A (atigktxx.dll) in MyApp.exe: 0xC0000005: Access violation reading location 0xFEEEFEEE. 

Это странно, так как есть случается, когда я начинаю Выпустить сборку. Должно ли 0XFEEEFEEE указать на неинициализированную память в режиме отладки?

Обычно я избавляюсь от ошибки, восстанавливая свой проект (только). Таким образом, на самом деле нет возможности воспроизвести ошибку.

Кто-нибудь сталкивался с этим? Я использую виджеты wxGLCanvas в своей программе.

+0

* Обычно я избавляюсь от ошибки, восстанавливая свой проект * - Это не будет считаться исправлением проблемы. Во-вторых, вы можете отлаживать сборки релиза, включив параметры отладки в ваших (предполагаемых) настройках проекта Visual C++ для сборки релиза. – PaulMcKenzie

+1

Вы уверены, что не используете один и тот же «промежуточный каталог» для своих отладочных и релизных сборников? что может привести к тому, что некоторые файлы debug * .obj будут связаны с вашей версией сборки – PeterT

ответ

1

Первое, что нужно сделать, это выяснить, где именно происходит это нарушение прав доступа, и вы должны быть в состоянии сделать это, выбрав перерыв в исключениях Win32 при запуске программы под отладчиком.

Если это происходит глубоко внутри драйвера ATI OpenGL, это, по-видимому, указывает на еще одну странность в коде ATI, и это не будет первое, например. это также known для вызова функций CRT с недопустимыми параметрами.

OTOH также возможно, что вы действительно передаете недопустимый параметр некоторой функции OpenGL, и в этом случае стек backtrace должен дать хотя бы некоторую информацию о том, какая функция и какой параметр она есть.

 Смежные вопросы

  • Нет связанных вопросов^_^