"Инструкция по адресу 0x00406a84 обратилась к памяти по адресу 0....
Как понять с чем это связано? С какой строкой программы?
P.S. Нашел причину. Не нашел - как удалить эту тему.
Отредактировано SadStar (11.11.2011 11:15:36)
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Программа падает с сообщением ...
"Инструкция по адресу 0x00406a84 обратилась к памяти по адресу 0....
Как понять с чем это связано? С какой строкой программы?
P.S. Нашел причину. Не нашел - как удалить эту тему.
Отредактировано SadStar (11.11.2011 11:15:36)
Как понять с чем это связано? С какой строкой программы?
В опциях проекта, отметь пункт "Поддержка OnError строк" и создай EXEшник из этого кода.
Procedure FatalError() Protected Result$, Line Result$="Упс, прога навернулась " Line = ErrorLine() If Line>=0 Result$+" в строке "+Str(Line)+", файла: "+ErrorFile() EndIf Result$+Chr(10)+Chr(10)+"Ошибка типа: "+Chr(34)+ErrorMessage()+Chr(34) Result$+Chr(10)+Chr(10)+"Напишите об этом разробу проги и может он соизволит исправить этот баг." MessageRequester("Ошибка программы!", Result$, #MB_OK|#MB_ICONERROR) End EndProcedure DisableDebugger OnErrorCall(@FatalError()) a/z ; Тут у нас ошибка.
Запусти скомпилированный EXEшник и посмотри что будет.
А будет примерно следующее:
OnErrorCall(@FatalError())
Этот перехват ошибок нужно делать в каждом потоке или достаточно при входе в программу?
Один на всю программу.
В самом начале кода поставь и все.
Привет народ , у меня предупреждение компелятора в третьей строке запрещено использование гаджета
в файле кнопка.pb. Мож настроить чё надо ?
запрещено использование гаджета
Скорее всего имеется в виду функция CreateGadgetList().
Ее нужно найти и удалить из кода.
Об этом можно прочитать в этой теме форума. Мне постоянно пищет вот это
Спасибо Пётр
Срабатывает FatalError() который пишет ошибки в лог-файл
вижу строку
20111230 11:21:17:FatalError(): в строке 167, файла: D:\PureBasic_projects\WindServer\WindServer.pb Ошибка типа: "Invalid memory access"
смотрю исходник
в 167 строке
EndProcedure
Что может быть причиной?
Что может быть причиной?
Скорее всего, ошибка в стеке.
Пример падения программы с сообщением "Invalid memory access" в строке с EndProcedure.
Procedure proc() EndProcedure ; Тут будет ошибка стека. Procedure Test() CallFunctionFast(@proc(), 100) ; В стек закладывается лишний параметр. EndProcedure Procedure FatalError() Protected Result$, Line Result$="Упс, прога навернулась " Line = ErrorLine() If Line>=0 Result$+" в строке "+Str(Line)+", файла: "+ErrorFile() EndIf Result$+Chr(10)+Chr(10)+"Ошибка типа: "+Chr(34)+ErrorMessage()+Chr(34) Result$+Chr(10)+Chr(10)+"Напишите об этом разробу проги и может он соизволит исправить этот баг." MessageRequester("Ошибка программы!", Result$, #MB_OK|#MB_ICONERROR) End EndProcedure DisableDebugger OnErrorCall(@FatalError()) Test()
Вы здесь » PureBasic - форум » Вопросы по PureBasic » Программа падает с сообщением ...