Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отловить access violation 
:(
    Опции темы
retto
Дата 5.6.2010, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

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



есть ли какието способы отлова ошибок типа access violation? Бо оч кумарит когда все работает, и иногда вылетает такая ошибка говорящая мало о чем.

PM MAIL   Вверх
Domain
Дата 5.6.2010, 11:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Проверь, соответствует ли код возврата ошибки, которую данный объект готов обработать. 
Вызови QueryInterface для получения указателя на интерфейс ISupportErrorlnfo. Затем вызови метод InterfaceSupportsErrorlnfo, чтобы убедиться, что ошибка была сгенерирована тем объектом, который возвратил тебе код ошибки, и объект ошибка относится именно к текущей ошибке, а не к предыдущему вызову. Вызови функцию GetErrorlnfo для получения указателя на объект-ошибку. 
При помощи методов lErrorlnfo считай информацию, содержащуюся в объекте ошибке. 
PM MAIL   Вверх
Artemon
Дата 5.6.2010, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

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



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

Отловить можно, когда приложение выдало exception - подключаемся к приложения через debuger (в стадии называетяс attach to process). Затем нажимаем кнопку "Pause" и смотрим стек вызовов. В стеке будет видно на какой ф-ии произошла ошибка.
Если имя ф-ии ни очем не говорит, то смотрим стек дальше, пока не увидим свои методы.


В Visual Studio данный подход отлично работает, как дело обстоит в Builder - не знаю, но могу предположить, что примерно тожесамое.




--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
retto
Дата 5.6.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 30.10.2007
Где: Кривой Рог, Украи на

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



Artemon,  пасибо, что такое Visual Studio и как с ней работать прекрасно знаю. Билдер же - вещь с "другого" мира))


Domain, спасибо smile 
возможно ли отлавливать ошибки всего проекта? по аналогии с Си Шарпом, где можно чтобы любая ошибка вызывала некое событие и можно логировать все исключения и потом бороться с ними.
PM MAIL   Вверх
Alca
Дата 5.6.2010, 21:53 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

возможно ли отлавливать ошибки всего проекта? 

Код

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
    try
    {
        Application->Initialize();
        Application->CreateForm(__classid(TForm1), &Form1);
        Application->Run();
    }
    catch (Exception &exception)
    {
        Application->ShowException(&exception);
    }
    catch (...)
    {
        try
        {
            throw Exception("");
        }
        catch (Exception &exception)
        {
            Application->ShowException(&exception);
        }
    }
    return 0;
}
//---------------------------------------------------------------------------

?

Добавлено через 48 секунд
Цитата

Билдер же - вещь с "другого" мира))

Чего вдруг?


--------------------
PM WWW ICQ Skype Jabber   Вверх
movmov
Дата 6.6.2010, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



юзай MadExcept, правда я заметил не всё ловит но стак трейс отличный в 70% случаев. настроить надоо наверно
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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