Выловить глюк
От: Аноним  
Дата: 08.09.06 06:24
Оценка:
Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation
Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
глюки в таких случаях?

Пишу на делфи..
Re: Выловить глюк
От: deadlight Россия  
Дата: 08.09.06 06:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation

А>Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
А>глюки в таких случаях?

А>Пишу на делфи..


Например встроить логи..
Re: Выловить глюк
От: wellwell Австралия https://www.softperfect.com
Дата: 08.09.06 06:37
Оценка:
On Fri, 08 Sep 2006 15:54:39 +0930, Аноним <0@users.rsdn.ru> wrote:
> Есть программа, на моём компьютере запускается нормально. Приносишь на
> другой — access violation
> Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке
> в исходнике и как вообще лювят
> глюки в таких случаях?
> Пишу на делфи..

Поздравляю... AV — одна из самых сложно находимых ошибок. Например ты
память вовредил где-нибудь, а через N времени это аукнулось в другом конце
программы. Для начала можно попробовать это
http://www.madshi.net/madExceptDescription.htm
Posted via RSDN NNTP Server 2.0
Re[2]: Выловить глюк
От: Аноним  
Дата: 08.09.06 06:54
Оценка:
Здравствуйте, deadlight, Вы писали:

D>Например встроить логи..

Хм.. А как же их сделать — каждое место, где работаю с указателем обернуть в try/except, и записть в лог
"Ошибка № X!"? Так захекаться можно Или есть способ узнать в обработчике строку в исходнике?
Re[3]: Выловить глюк
От: mishin  
Дата: 08.09.06 07:06
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, deadlight, Вы писали:


D>>Например встроить логи..

А> Хм.. А как же их сделать — каждое место, где работаю с указателем обернуть в try/except, и записть в лог
А> "Ошибка № X!"? Так захекаться можно Или есть способ узнать в обработчике строку в исходнике?

Вставь кучу Assert`ов
И добавь вот модуль AssertionHandlerU
Думаю сам разберешься что он делает
Re: Выловить глюк
От: maslan Россия  
Дата: 08.09.06 07:11
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation

А>Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
А>глюки в таких случаях?

А>Пишу на делфи..

Как вариант — отсутствие нужных фалов,пакетов.
Например, прога работает с БД через BDE, а на втором компе BDE нету...
У меня били глюки, когда bpl файлов не хватало, а прога вылетала с AV.
Решал с помощью filemon
... << RSDN@Home 1.1.3 beta 2 >>
Re: Выловить глюк
От: SnowBlast Казахстан  
Дата: 08.09.06 07:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation

А>Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
А>глюки в таких случаях?

А>Пишу на делфи..

Воспользоваться Remote Debuger'ом, который вместе в делфями поставляется.
Как улитка с параличем мчится мысль неудержимо, центр речи возбуждая
Re[2]: Выловить глюк
От: Аноним  
Дата: 08.09.06 09:18
Оценка:
Здравствуйте, wellwell, Вы писали:

W>http://www.madshi.net/madExceptDescription.htm


Супер! Всё исправил в течении 10 минут! Спасибо!
Re[3]: Выловить глюк
От: deadlight Россия  
Дата: 08.09.06 10:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, deadlight, Вы писали:


D>>Например встроить логи..

А> Хм.. А как же их сделать — каждое место, где работаю с указателем обернуть в try/except, и записть в лог
А> "Ошибка № X!"? Так захекаться можно Или есть способ узнать в обработчике строку в исходнике?

Зачем каждое место? Сначала имеет смысл разделить код на крупные операции и в лог писать что-то типа:
<дата, время> делаю крупное действие 1 (например, читаю конфигурацию)
<дата, время> OK
...
и т.д.

локализуешь место, а дальше его уже изучай внимательно, глянь под отладчиком на тачке где работает, детализируй логи.
Re: Выловить глюк
От: aswSoft http://aswsoft.hoha.ru
Дата: 10.09.06 18:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation

Была такая история, но просто так не скажешь. Можно лишь попробовать сориентировать. На твоем компе есть что то, что используется в момент запуска программы. У меня вот к базе подключалась на которой я разрабатывал. На другом компе ее соответственно не было. Может какие либо модули в секции initialization могут что то загружать. Но с этим проблемы чаще на разных операционках. Например с ХР на 98 может глючить.
А>Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
А>глюки в таких случаях?

Ну как ловят Либо лог веди и на каждой строке что нить пиши в файл лога. Тогда узнаешь где вылетела прога. Или поставль Делфи и запусти из под дебагера. Я так и делал. НО совет. Используй виртуальную машину. Например VMWare. Очень полезная штука. Постарайся на ней воспроизвести конфигурацию клиента и ничего лишнего. Или просто чистую машину настрой. Если ошибка повториться, то тебе повезло. Можно работать и ловить ее.

Удачи!
Re[2]: Выловить глюк
От: Danchik Украина  
Дата: 10.09.06 18:32
Оценка:
Здравствуйте, aswSoft, Вы писали:

S>Здравствуйте, Аноним, Вы писали:


А>>Есть программа, на моём компьютере запускается нормально. Приносишь на другой — access violation

S>Была такая история, но просто так не скажешь. Можно лишь попробовать сориентировать. На твоем компе есть что то, что используется в момент запуска программы. У меня вот к базе подключалась на которой я разрабатывал. На другом компе ее соответственно не было. Может какие либо модули в секции initialization могут что то загружать. Но с этим проблемы чаще на разных операционках. Например с ХР на 98 может глючить.
А>>Как можно узнать где именно вылетает с ошибкой? В идеале в какой строке в исходнике и как вообще лювят
А>>глюки в таких случаях?

S>Ну как ловят Либо лог веди и на каждой строке что нить пиши в файл лога. Тогда узнаешь где вылетела прога. Или поставль Делфи и запусти из под дебагера. Я так и делал. НО совет. Используй виртуальную машину. Например VMWare. Очень полезная штука. Постарайся на ней воспроизвести конфигурацию клиента и ничего лишнего. Или просто чистую машину настрой. Если ошибка повториться, то тебе повезло. Можно работать и ловить ее.


S>Удачи!


Да нашел он багу, нашел
madExcept и JclDebug рулят
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.