Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1324722795
3asys
2011-12-24 14:33
2012.04.15
Получение звука с TSampleGrabber


15-1323894603
Юрий
2011-12-15 00:30
2012.04.15
С днем рождения ! 15 декабря 2011 четверг


15-1323447806
ReadOnly
2011-12-09 20:23
2012.04.15
Сюрпризы от предыдущих разработчиков


2-1324444743
petvv
2011-12-21 09:19
2012.04.15
Непонятки с запросом


2-1324723705
igorium
2011-12-24 14:48
2012.04.15
StringList - есть ли ограничения на размер массива?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский