Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   Программа определения причины зависания консоли (http://forum.oszone.net/showthread.php?t=304049)

Diana_Konovalova 16-08-2015 15:10 2542290

Программа определения причины зависания консоли
 
Всем доброго времени.

Нужно организовать FixBag на 173 машинах.
Ищу программу под управлением Windows, которая может постоянно отслеживать зависание конкретного консольного приложения, единожды определенного администратором и определяющая причину этой "заморозки" с возможностью ведения лога. Зависание происходит не на всех машинах и в разное время выполнения консольного приложения, нужно конкретно определить саму причину нестабильности работы программы на конкретном ПК.

Подскажите, кто чем пользуется ?
Нужно естественно леченое :)

Iska 16-08-2015 18:33 2542340

Цитата:

Цитата Diana_Konovalova
Подскажите, кто чем пользуется ? »

Исходным кодом этого приложения и отладчиком.

Diana_Konovalova 17-08-2015 07:08 2542467

Цитата:

Цитата Iska
Исходным кодом этого приложения и отладчиком. »

Полностью согласна, но автор программы утверждает, что у него таких проблем нет.
Он мог бы пофиксить эту ошибку, но дистанционно это сделать через интернет очень проблематично.
На определенных ПК (еще раз подчеркиваю не на всех) при запуске этого консольного приложения, бывает процессор сразу грузит на 100% без какой либо введенной команды, но при запуске программы в Virtual Mode (на виртуальной машине) такого зависания (на этих ПК) не происходит.
Как можно выяснить - это аппаратная или программная часть виновата ?

Опиум 17-08-2015 12:09 2542603

Diana_Konovalova, в общих чертах что делает эта консольная программка?

K.A.V. 17-08-2015 13:50 2542652

Цитата:

Цитата Diana_Konovalova
автор программы утверждает, что у него таких проблем нет. »

Если у кого-то программа не работает должным образом - значит не было произведено качественное тестирование ПО, а т.к. причин зависаний может быть великое множество - здесь вам сможет помочь только разработчик этого продукта, добавив в свою программу логирование при работе, чтобы определить, на каком участке кода программа отрабатывает некорректно.

Цитата:

Цитата Diana_Konovalova
при запуске этого консольного приложения, процессор сразу грузит на 100% »

Цитата:

Цитата Diana_Konovalova
Как можно выяснить - это аппаратная или программная часть виновата ? »

Скорее программная из-за каких-то особенностей системы/железа (вообще, не зная названия программы проблематично что-то конкретное сказать), т.к. видимо, где-то программа входит в вечный цикл обработки данных (судя по загрузке проца), соответственно, где-то ошибка в коде

Со стороны пользователя проблематично найти ошибку в программе, т.к. пользователь не знает, как устроена программа и что она делает при определённых операциях

Можете, конечно, воспользоваться дебаггерами - но сомневаюсь, что без подготовки вы что-то сможете сделать

Diana_Konovalova 17-08-2015 21:50 2542846

Цитата:

Цитата Опиум
в общих чертах что делает эта консольная программка? »

Синхронизацию содержимого каталогов (одно- и двунаправленную), создание и обработку файл-листов, расфасовку информации на "порции" заданного размера и много других полезных функций...
Цитата:

Цитата K.A.V.
здесь вам сможет помочь только разработчик этого продукта »

Выполнение этой программы происходит на конторских машинах со своим индивидуальным железом и возможности автору программы приехать или дистанционно запустить отладчик не имеется. Запуск внешнего профайлера более реален, но тоже сопряжён с огромными сложностями. Как можно, не прибегая к профайлеру, определить точку зависания программы?
Цитата:

Цитата K.A.V.
добавив в свою программу логирование при работе »

Сегодня узнала, что по мнению автора, вариант "подробное логирование работы этой программы в файловую систему" для идентификации ошибки плохо подходит. Он объясняет это тем, что программа состоит из около 45 тысяч строк кода, а самое главное из моей практики, бывает виснет не сразу после запуска и достаточно редко.
Цитата:

Цитата K.A.V.
видимо, где-то программа входит в вечный цикл обработки данных (судя по загрузке проца) »

Пробовала Process Explorer, но он очень странно работает, либо я до конца не разобралась. Если успеть "поймать" поток, вошедший в бесконечный цикл, то его стек посмотреть вполне возможно, но этот поток достаточно быстро "исчезает", либо в РЕ, то ли его действительно "убивает" среда. :dont-know
Цитата:

Цитата K.A.V.
Можете, конечно, воспользоваться дебаггерами »

Вариант приложения-монитора вполне приемлем. Если можно как-то создать дамп процесса или получить информацию о потоках этого процесса, то было бы совсем здорово. Если есть какой-то готовый инструмент, то будет ещё лучше ? :)

K.A.V. 18-08-2015 17:41 2543167

Цитата:

Цитата Diana_Konovalova
Выполнение этой программы происходит на конторских машинах со своим индивидуальным железом и возможности автору программы приехать или дистанционно запустить отладчик не имеется »

При обнаружении бага в программе - автору не нужно куда-то ехать и самому что-то делать дистанционно, для решения таких проблем в программу интегрируется функция логирования, лог работы программы передаётся разработчику и он устраняет баг в программе
Что такое "профайлер"? Первый раз слышу это слово

Цитата:

Цитата Diana_Konovalova
Как можно, не прибегая к профайлеру, определить точку зависания программы? »

Я вам ещё раз повторяю, если вы с первого раза что-то не поняли: никак вы не определите, на каком месте программа отрабатывает некорректно, если вы не разработчик этой программы

Цитата:

Цитата Diana_Konovalova
Сегодня узнала, что по мнению автора, вариант "подробное логирование работы этой программы в файловую систему" для идентификации ошибки плохо подходит. Он объясняет это тем, что программа состоит из около 45 тысяч строк кода, а самое главное из моей практики, бывает виснет не сразу после запуска и достаточно редко. »

По мнению вашего автора - его программа идеальна (т.к. у него работает на все 100% без ошибок) и ей больше ничего не требуется, сразу видно его отношение к пользователям своей программы, а если его программа ещё и доход ему приносит с вашей организации (платное ПО?) - тогда у этого "автора" вообще совести нет
Если прога виснет не всегда - как раз логирование это самый подходящий из вариантов...Просто автору лень, вот и всё, а 45 тысяч строк - это вовсе не много

Цитата:

Цитата Diana_Konovalova
Вариант приложения-монитора вполне приемлем »

От вас о самой программе 0 информации, поэтому опять же, посоветовать можно только "в слепую", ваше приложение что-то пишет в консоль вообще или нет? Если пишет - автору не составит труда перенаправить вывод информации из консоли в файл
Вы, кстати, можете это и сами сделать, допустим, создадим батник следующего содержания:
Код:

myapp.exe > test.log
всё, что напишет программа myapp.exe в своей консоли - будет сохранено в текстовый файл, если ваша прога постоянно отображает информацию - может, и можно таким способом определить, где проблема

Насчет дебаггеров - при их использовании, дебаггер покажет, на каком месте прервалось исполнение программы, но, т.к. вы не автор сей проги и, думаю, не знакомы с дебаггерами - вам это не поможет, +вам этот вариант не подойдёт хотя бы потому, что как вы говорили, программа зависает не всегда

Не знаю, что тут ещё сказать, разработчик вам в помощь, пинайте его сильно сильно, втройне сильнее, если софт платный :)

Charg 18-08-2015 18:20 2543183

Цитата:

Цитата Diana_Konovalova
Вариант приложения-монитора вполне приемлем. »

Очень хорошо что вас устраивает такой вариант. Есть всего одна маленькая загвоздочка - таких приложений-мониторов не существует в природе.

Как уже выше неоднократно упоминалось - такие проблемы решаются исключительно через разработчика. Как словить и починить баг - это исключительно его работа. Ваша задача, как пользователя - только описать разработчику действия которые приводят к зависанию (если таковой алгоритм имеется).

И, в общем-то, если этот самый разработчик предоставил вам свою программу as is (и допустим, уволился из вашей конторы) - вполне возможно что он не захочет её исправлять. Потому что в общем-то и не должен, это уже вопрос морали. В таких случаях помогает поиск альтернативы и\или материальный стимул.

Iska 18-08-2015 19:08 2543214

Цитата:

Цитата K.A.V.
Что такое "профайлер"? Первый раз слышу это слово »

«Profiler»: Profiling (computer programming) - Wikipedia, the free encyclopedia. Преимущественно используется для определения «узких» мест при исполнении приложения.

Diana_Konovalova 18-08-2015 21:08 2543283

Цитата:

Цитата K.A.V.
Что такое "профайлер"? Первый раз слышу это слово »

Если для отладки программы используется основной инструмент - отладчик, то для оптимизации кода желательно использовать инструмент - профайлер.
Профайлер - это определенный подвид отладчика, он запускает программу под отладкой и отслеживает, какой код будет выполнять эта программа. После работы профайлера, с точностью можно выяснить, чем была занята программа, какой код в ней дольше всего выполнялся, т.е. можно однозначно определить узкие места в производительности самого кода, а так же зафиксировать точку зависания программы в бесконечном цикле, если происходит такая ситуация. Смысл профайлера заключается в том, что вы фильтруете информацию и получаете возможность сфокусироваться на том, что хотите знать. Т.е. вы "задаете вопрос", профайлер показывает вам ответ, вы уточняете "вопрос" и так далее, пока не будет найдено проблемное место в программе.

Этот способ был предложен разработчиком программы, причем запуск профайлера на удаленной машине через интернет и как я уже говорила - это сопряжёно с огромными сложностями, в первую очередь с обеспечением безопасности передаваемой информации и специфическими особенностями работы нашей компании, поэтому этот вариант был сразу отвергнут нашим руководством.

Искренне благодарю всех, кто помогал мне решить этот вопрос.
Всего Вам доброго и не прощаюсь, Диана. :girlinlove:

K.A.V. 19-08-2015 00:02 2543323

Diana_Konovalova, благодарю за объяснение, о таком не слышал :)
Цитата:

Цитата Diana_Konovalova
Этот способ был предложен разработчиком программы »

Похоже, Вам попался "неправильный разработчик", который весь процесс по поиску ошибки решил возложить на пользователя, что мягко говоря странно и вообще, не правильно :o

Цитата:

Цитата Diana_Konovalova
Всего Вам доброго и не прощаюсь, Диана. »

И Вам всего доброго, может, потом зайдёте к нам в гости на пару минут и расскажите, чем эта история закончилась (запинаете ли разработчика до появления у него желания добавления логирования или решите другим методом)


Время: 08:12.

Время: 08:12.
© OSzone.net 2001-