Форум: "Начинающим";
Текущий архив: 2012.04.15;
Скачать: [xml.tar.bz2];
ВнизМожно ли узнать где произошла ошибка на чужом компе? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.007 c