Главная страница
    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.003 c
15-1323607758
tj.nelson
2011-12-11 16:49
2012.04.15
помогите разобраться с StringList и memo


2-1324396199
TComponent
2011-12-20 19:49
2012.04.15
Проблема с asm кодом


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


15-1323425884
Компромисс
2011-12-09 14:18
2012.04.15
Free Parent Control Software


2-1324469524
Шел мимо решил зайти
2011-12-21 16:12
2012.04.15
Button.Caption и цикл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский