Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Debugger Fault, ошибка из под делфи 
V
    Опции темы
Burka
Дата 30.11.2010, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Написал довольно большую программу, через некоторое время пришлось к ней вернутся и добавить некоторые функции. Но при запуске через делфи выдает ошибку. Причем программа нормально запускается вне делфи, никаких изменений в программу еще не внес. Подскажите что может помочь?

PS Думал из за касперского, но с отключенной защитой делфи выдавал тоже самое.



Присоединённый файл ( Кол-во скачиваний: 27 )
Присоединённый файл  err1.PNG 7,53 Kb


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
GBB700
Дата 30.11.2010, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 30.11.2010

Репутация: нет
Всего: нет



Ну а каких местах выскакивают ошибки? Что за ошибки?
Если программа нормально работает вне делфи то возможно ошибки выскакивают внутри блоков try которые отладчик делфи все равно отображает, а нормальном режиме они обрабатываются иначе. 
PM MAIL   Вверх
Burka
Дата 30.11.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Цитата(GBB700 @ 30.11.2010,  10:07)
Ну а каких местах выскакивают ошибки? Что за ошибки?
Если программа нормально работает вне делфи то возможно ошибки выскакивают внутри блоков try которые отладчик делфи все равно отображает, а нормальном режиме они обрабатываются иначе.

При запуске ошибка выскакивает, я не знаю в каком месте, даже при Step Over ошибка выскакивает сразу же. Окно ошибки в аттаче. При запуске программы не выполняется никаких кодов в try except. Единственное подключаются функции из длл, статически. Но при запуске выдавались бы ошибки. А так все работает.


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Snowy
Дата 30.11.2010, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Ну и наплюй слюнями.
Жми Ок и снова F9.
Написано же - внутреннее программное исключение, жми Run.
Можешь добавить это исключение в игнор.
Это плановое исключение. Оно там и задумано.
PM MAIL   Вверх
Burka
Дата 30.11.2010, 12:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Как его можно заигнорить?
Нажатие F9 не помогает, дебагер не закрывается и форма не появляется
пс. форма появляется, ждать приходится. 

Это сообщение отредактировал(а) Burka - 30.11.2010, 12:05


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Snowy
Дата 30.11.2010, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Цитата(Burka @  30.11.2010,  12:03 Найти цитируемый пост)
Как его можно заигнорить?
В настройках дельфи в разделе Debuger Options
В добавить свой код OS Exeptions (в твоём случае это $C000001d)

Добавлено через 1 минуту и 24 секунды
Хотя он там и так есть.
Попробуй поменять флажочки.
PM MAIL   Вверх
Burka
Дата 30.11.2010, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



Спасибо большое, сам бы в жизни не разобрался. 
Убрал флажок integrated debugging и стало запускаться без ошибки.


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
CodeMonkey
Дата 1.12.2010, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Burka @  30.11.2010,  11:22 Найти цитируемый пост)
я не знаю в каком месте


После нажатия на OK в окне, что в аттаче - что происходит? Уж не тыркает ли отладчик на строку с ошибкой, а?

Цитата(Snowy @  30.11.2010,  12:48 Найти цитируемый пост)
Это плановое исключение. Оно там и задумано.


"faulted" - это вылет приложения. Вылет приложения - это плановое исключение?

Цитата(Burka @  30.11.2010,  13:45 Найти цитируемый пост)
Убрал флажок integrated debugging и стало запускаться без ошибки. 


Класс. Проблема воспроизводится только под отладчиком. Некоторые считают это счастьем. Гораздо хуже, когда наоборот. И что же мы делаем? Вместо того, чтобы решать проблему, мы отключаем отладчик! Пять баллов. От того, что вы закрыли глаза на проблему, она никуда не уйдёт.

C000001D - это EXCEPTION_ILLEGAL_INSTRUCTION. Что-то в вашей программе ну очень страшное происходит. Вы же не хотите оставить эту ошибку?

Рекомендую (ссылка на материалы - в конце).

Если с этим проблемы, действуем так:
1. Устанавливаем настройки проекта для отладки.
2. Анализируем состояние программы после нажатия на OK в том окне с фатальной ошибкой.

Как вариант - использовать Search/Go to address, $7C96478E


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Snowy
Дата 1.12.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



А ты предлагаешь править винду?
Если ничего не менялось, значит проблема в системе.
Ставлю конфетку на то, что, если накатить последний сервиспак, проблема исчезнет в принципе.
PM MAIL   Вверх
CodeMonkey
Дата 1.12.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89





--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Burka
Дата 7.12.2010, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



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

Модуль описания функций из длл, я его сам писал возможно здесь может быть ошибка. 
Код

unit WinDBR32;

interface

type
  lpszString = array [0..79] of char;
  YMDHM = record
           year   : integer;
           month  : integer;
           day    : integer;
           hour   : integer;
           minute : integer;
          end;
  lpYMDHM = ^YMDHM;
  MdbData = record
             value  : Longint;
             pname  : Integer;
             check  : Integer;
             diff   : Longint;
             ltype  : Integer;
             lvalue : Integer
            end;
 lpMdbData = ^MdbData;

 TBuffer = array[0..99] of char;
 lpTBuffer = array[1..5] of char;


  //function   MdbOpen (hWnd : THandle): THandle; stdcall; external 'WinDbr32';
  function   MdbClose (hDB : THandle): integer; stdcall; external 'WinDbr32';
  function   MdbOpenR (szFileName: Pchar): THandle; stdcall; external 'WinDbr32';
  function   MdbNext (hDB :THandle): boolean; stdcall; external 'WinDbr32';
  procedure  MdbReset (hDB :THandle); stdcall; external 'WinDbr32';
  //procedure  MdbReRead (hDB :THandle); stdcall; external 'WinDbr32';
  procedure  MdbSetCodeForm (hDB :THandle; nCodeForm:integer); stdcall; external 'WinDbr32';
  procedure  MdbSetObsStart (hDB :THandle; lpdtBegin: lpYMDHM); stdcall; external 'WinDbr32';
  procedure  MdbSetObsEnd (hDB :THandle; lpdtEnd: lpYMDHM); stdcall; external 'WinDbr32';
  //procedure  MdbClearObsInt (hDB :THandle); stdcall; external 'WinDbr32';
  //procedure  MdbSetObsInt (hDB :THandle; lpdtBegin: lpYMDHM; lDuration: longint); stdcall; external 'WinDbr32';
  procedure  MdbSetIndex (hDB: THandle; lIndex:longint);  stdcall; external 'WinDbr32';
  procedure  MdbSetPname (hDB: THandle; Pname: integer);  stdcall; external 'WinDbr32';
  function   MdbAddPname (hDB: THandle; Pname: integer):boolean;  stdcall; external 'WinDbr32';
  function   MdbGetIndex(hDB:THandle): longint; stdcall; external 'WinDbr32';
  function   MdbGetData(hDB: THandle; lpdbData: lpMdbData): boolean; stdcall; external 'WinDbr32';
  Function   MdbIsMultiPoint (hDB: THandle): boolean; stdcall; external 'WinDbr32';
  Function   MdbSkipPoints (hDB: THandle): boolean; stdcall; external 'WinDbr32';
  function   MdbGetObsTime(hDB: THandle; lpdtObsTime: lpYMDHM):boolean; stdcall; external 'WinDbr32';
 /// Procedure  MdbSetClear(hDB: THandle);stdcall; external 'WinDbr32';
  Procedure  MdbSetLevelType(hDB: THandle; nLevelType:integer);stdcall; external 'WinDbr32';
  Function   MdbGetCallSign (hDB: THandle; lpBuf:pointer; nSize: integer):integer;stdcall; external 'WinDbr32';
  procedure  MdbSetCallSign (hDB: THandle; szCallSign: lpTBuffer); stdcall; external 'WinDbr32';
  procedure  MdbSetIndexFilter (hDB: THandle; lpUserFunc: pointer; lParam: longint); stdcall; external 'WinDbr32';
  Function   MdbTell(hDB: THandle; wFlags:word; lpBuf:pointer; wSize:word):word; stdcall; external 'WinDBr32';
  Function   MdbGetPosSize(hDB: THandle; wFlags: word): word; stdcall; external 'WinDBr32';
  Function   MdbSeek(hDB: THandle; wFlags:word; lpBuf: pointer; wSize: word):boolean; stdcall; external 'WinDBr32';


 // Procedure  MdbSetPname(HDB: THandle; nPname:integer);stdcall; external 'WinDbr32';
Var
  szFilePath :Pchar;
  hDB, Hwnd :Thandle;
  hndDLLHandle: THandle;
  pMyMdbData : lpMdbData;
  DateBegin,DateEnd: YMDHM;
  pDB, pDE, pD, pTemp : lpYMDHM;

const
  NULL = 0;
  
implementation

end.


И просто код вызова функции
Код

Hdb:=MDBOpenR(Pchar('meteo.cdb')); //открываем базу
MdbClose(hDB); //закрываем бащу


Вот фишка вся в том что все работает без деббагера, все функции вызываются и тд.
К слову сервис пак стоит третий.

Это сообщение отредактировал(а) Burka - 7.12.2010, 13:37


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
CodeMonkey
Дата 7.12.2010, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Кто такая WinDbr32 и как с ней работать - я так понимаю, мы должны угадать?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Burka
Дата 7.12.2010, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 429
Регистрация: 11.5.2007

Репутация: нет
Всего: 2



А что значит как с ней работать?
dll библиотека написанная на си, присланная из москвы для работы с метео базой, недавно было обновление, скорей всего из за которого эта ошибка и появилась. Если это поможет, то для этой длл после последнего обновления необходима установка MS Visual C++ 2005 SP1 Redistributable Package.
Так же длл требует наличие хасп ключа. Что еще я могу сказать?


--------------------
Великие умы обсуждают идеи; средние умы обсуждают события; мелкие умы обсуждают людей.
PM MAIL   Вверх
Xenag
Дата 7.12.2010, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 51
Регистрация: 6.3.2010

Репутация: нет
Всего: нет



Вероятно срабатывает программная защита на обнаружении дебаггера.
PM   Вверх
CodeMonkey
Дата 7.12.2010, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Цитата(Burka @  7.12.2010,  15:35 Найти цитируемый пост)
Так же длл требует наличие хасп ключа


Цитата(Xenag @  7.12.2010,  19:09 Найти цитируемый пост)
Вероятно срабатывает программная защита на обнаружении дебаггера. 


Кстати, да.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0982 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.