Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.15;
Скачать: CL | DM;

Вниз

Можно ли узнать где произошла ошибка на чужом компе?   Найти похожие ветки 

 
igorium@list.ru   (2011-12-22 16:13) [0]

Всем привет.
Есть проект, который у меня отлично работает.
А у другого человека нет.
Придти к нему с Delphi я не могу технически.
Можно ли вставить в проект некий код, который вместо обычной ошибки, выдавал бы номер строки и в какой области и что произошло.


 
stas ©   (2011-12-22 16:15) [1]

писать лог как вариант.
Номер строки не вернет однозначно, откуда exe файлу знать о строках в твоей апрограмме. Вернет адрес, вроде по адресу можно как-то разобрать.


 
MBo ©   (2011-12-22 16:17) [2]

Assert знает о строках.


 
Германн ©   (2011-12-22 16:20) [3]

http://www.eurekalog.com/index_delphi.php


 
Ega23 ©   (2011-12-22 16:23) [4]

Имей привычку потенциально-опасные места заключать в try..except с рерайзом E.Message = E.Message + " procedure TMyObject.Foo" (например).
Не гаси исключения, а пиши их в лог.
Не создавай коннект к базе в дизайн-тайм.
Следи за соответствием версий всяких OLEDB-провайдеров, MSOffice и прочих примочек, которые ты будешь дёргать из своей программы.
Не ленись создавать Debug и Release сборки. В дебаге логгируй действия
{$IFDEF DEBUG}
 WriteToLog ...
{$ENDIF}

Ну и т.д.


 
OW ©   (2011-12-22 16:29) [5]


> http://www.eurekalog.com/index_delphi.php

вещь!

можно Jcl помотреть
 JclDebug,
 JclHookExcept,
примерно тоже самое, что и в Эврике, но пилить руками больше, как мне показалось


 
Anatoly Podgoretsky ©   (2011-12-22 16:31) [6]

> stas  (22.12.2011 16:15:01)  [1]

ASSERT знает все, но с ним сложно. А если человек в состоянии прочитать и
сообщить информацию с экрана, то можно не усложнять.


 
stas ©   (2011-12-22 16:31) [7]

igorium@list.ru   (22.12.11 16:13)
А что за программа? и что пишет там где не работает?


 
stas ©   (2011-12-22 16:32) [8]

Anatoly Podgoretsky ©   (22.12.11 16:31) [6]
Это не мне)


 
igorium@list.ru   (2011-12-22 17:26) [9]

Спасибо за массовое желание помочь.
Программа работает с большим количеством графических файлов JPEG, читаю у них информацию.
У меня все нормально обработало ~23"000 файлов.
У кого то выдает ошибку на ~50"000 файлов, у кого-то на ~1800 файлов.
И у всех ошибки разные - "Range check error", "Access violation", "Out of memory".
Скорее всего ошибки детские - где-то что-то не учел.
У меня много динамических массивов, переменных.
Но где, что произошло я не в состоянии узнать без ~логов.


 
Ega23 ©   (2011-12-22 17:50) [10]


> И у всех ошибки разные - "Range check error", "Access violation",
>  "Out of memory".


Range check error - не по тому индексу массива обращаешься, такого ещё нет
Access violation - обращаешься к ещё не созданному или уже убитому объекту.
Out of memory - не уничтожаешь объект(ы) в процессе работы.

Это с вероятностью 99%, хотя возможны и другие варианты.


 
stas ©   (2011-12-22 17:53) [11]

igorium@list.ru   (22.12.11 17:26) [9]
Out of memory - программа растет (большими темпами) в памяти по ходу работы?
если да, то где-то утечка памяти.


 
igorium@list.ru   (2011-12-22 18:18) [12]

Ega23, stas
Спасибо, я в курсе переводов.
Для того, чтобы найти починить программу надо найти где сломано...
Вопрос только в этом.
Починить я смогу.
Насчет Out of memory - я кажется нашел причину. Искренне надеюсь на это :)

Из всего вышесказанного мне понравилось WriteToLog.
Буду копать в этом направлении. Пошел читать мануал.


 
Ega23 ©   (2011-12-22 18:35) [13]


> Спасибо, я в курсе переводов.


Я тебе не перевод, а потенциальное место, где косяк.
А где оно - только тебе известно, я же не видел кода твоей программы.

WriteToLog - это условная штука была, реальной такой, естественно, нет.


 
igorium@list.ru   (2011-12-22 19:00) [14]

Я уже понял.
Правда только после копания Гугла :)
Но идея понравилась, спасибо.


 
Dimka Maslov ©   (2011-12-22 20:59) [15]

Ещё можно в различные критические места понатыкать Beep и по количеству бибиканий локализовать место ошибки. Сам так делал.


 
igorium ©   (2011-12-22 21:44) [16]


> Dimka Maslov ©   (22.12.11 20:59) [15]
> Ещё можно в различные критические места понатыкать Beep
> и по количеству бибиканий локализовать место ошибки. Сам
> так делал.


Идея смешная :)
У меня проблема с чужим компом - со своим я отладкой ищу.


 
Ega23 ©   (2011-12-22 22:16) [17]


> У меня проблема с чужим компом - со своим я отладкой ищу.


Если одна и та же программа, то у тебя просто ситуации такой не возникало.


 
Dimka Maslov ©   (2011-12-23 09:48) [18]


> igorium ©   (22.12.11 21:44) [16]

Именно потому, что проблема с другим компом. Пусть пользователь чужого компа бибикания считает, а потом скажет.



Страницы: 1 вся ветка

Текущий архив: 2012.04.15;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
2-1324444743
petvv
2011-12-21 09:19
2012.04.15
Непонятки с запросом


1-1291776597
TPAW
2010-12-08 05:49
2012.04.15
TEdit с картинкой


1-1290857534
VLK32
2010-11-27 14:32
2012.04.15
Манипулирование метаклассами


15-1323693258
stas
2011-12-12 16:34
2012.04.15
подключение через VPN


2-1324758041
Natalya
2011-12-25 00:20
2012.04.15
Компонент ListBox и действия с ним