Падает приложение
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Падает приложение
Всем привет. Столкнулся с проблемкой: самопроизвольно выключаетс приложение. Ошибок, при этом, никаких нет. Как можно отследить причину этого явления ?
Выключиться может и через 5 минут работы и через несколько часов.
Выключиться может и через 5 минут работы и через несколько часов.
Добро пожаловать на http://rk-stud.ru/
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Падает приложение
А что за приложение? LabVIEW-шное?
Что внутри?ActiveX? Какое-то стороннее ПО задействовано?
Что внутри?ActiveX? Какое-то стороннее ПО задействовано?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: Падает приложение
Ну для начала посмотреть в системный лог Windows (Application).
Можно раскидать по всему приложеню запись в свой лог (ну или использовать OutputDebugStringA()) и посмотреть в каком месте падает по последней записи. Можно также запуститься из под отладчика (windbg) - есть шанс, что там, где возникнет исключение, оно не просто свалится, а упадёт вам в руки.
Обычно такое происходит, если внешний код используется (DLL, .net ActiveX), либо что-то очень настандартное накручено (у меня, к примеру были падения если VISA функции использовались в TimedLoop).
Можно раскидать по всему приложеню запись в свой лог (ну или использовать OutputDebugStringA()) и посмотреть в каком месте падает по последней записи. Можно также запуститься из под отладчика (windbg) - есть шанс, что там, где возникнет исключение, оно не просто свалится, а упадёт вам в руки.
Обычно такое происходит, если внешний код используется (DLL, .net ActiveX), либо что-то очень настандартное накручено (у меня, к примеру были падения если VISA функции использовались в TimedLoop).
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Падает приложение
Спасибо за советы.
activex есть, есть и dll (vlc плеер)
да, лабвьюшное. программа просмотра контента.Vitekkz88 писал(а):А что за приложение? LabVIEW-шное?
Что внутри?ActiveX? Какое-то стороннее ПО задействовано?
activex есть, есть и dll (vlc плеер)
а что это такое ? Это из под необходимо будет запускаться ?AndreyDmitriev писал(а):Можно также запуститься из под отладчика (windbg) - есть шанс, что там, где возникнет исключение, оно не просто свалится, а упадёт вам в руки.
и первое и второе используется.AndreyDmitriev писал(а):Обычно такое происходит, если внешний код используется (DLL, .net ActiveX)
Добро пожаловать на http://rk-stud.ru/
-
dadreamer
- professor
- Сообщения: 3926
- Зарегистрирован: 17 фев 2013, 16:33
- Награды: 4
- Версия LabVIEW: 2.5 — 2022
- Благодарил (а): 11 раз
- Поблагодарили: 127 раз
- Контактная информация:
Re: Падает приложение
LabVIEW при запуске создаёт во временной директории (обычно это C:\Windows\Temp) лог-файл, в который пишет системные сообщения и критические ошибки. Например, у меня в данный момент это файл LabVIEW_32_14.0f1_user_cur.txt. Попробуйте посмотреть, что там написано после падения программы.
А также довольно неплохой способ выловить проблемный участок - изолирование отдельных кусков кода. Допустим, убираете все ActiveX-узлы и гоняете программу. Если упадёт, убираете ещё какие-то узлы/инструменты. И так далее, пока не найдёте "виновника".
Почитайте также тему http://labviewportal.org/viewtopic.php? ... 86&p=51607
А также довольно неплохой способ выловить проблемный участок - изолирование отдельных кусков кода. Допустим, убираете все ActiveX-узлы и гоняете программу. Если упадёт, убираете ещё какие-то узлы/инструменты. И так далее, пока не найдёте "виновника".
Почитайте также тему http://labviewportal.org/viewtopic.php? ... 86&p=51607
-
Vitekkz88
- expert
- Сообщения: 1100
- Зарегистрирован: 21 янв 2014, 15:45
- Награды: 3
- Версия LabVIEW: 12,13,14
- Откуда: Томск
- Контактная информация:
Re: Падает приложение
Sergey Ivanov, Программа как .exe запускается и падает? Или эти падения на этапе разработки из под LabVIEW происходят? Используемые dll раньше в проекты подключали и без проблем работало?
Может есть возможность дать потестить нам? Возможно дело в используемой ОС? Или падает на всех машинах?
Может есть возможность дать потестить нам? Возможно дело в используемой ОС? Или падает на всех машинах?
Инженер - это открыто светящийся интеллект, свободный и не обидный юмор, это легкость и широта мысли...Это воспитанность, тонкость вкусов, хорошая речь, плавно согласованная и без сорных словечек...
-А. И. Солженицын
-А. И. Солженицын
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: Падает приложение
Чёт вы странные вопросы задаёте для эксперта.Sergey Ivanov писал(а):а что это такое ? Это из под необходимо будет запускаться ?AndreyDmitriev писал(а):Можно также запуститься из под отладчика (windbg) - есть шанс, что там, где возникнет исключение, оно не просто свалится, а упадёт вам в руки.
WinDbg забираете отсюда:
https://msdn.microsoft.com/en-us/window ... 52365.aspx
Теперь берём приложение, которое гарантированно роняет LabVIEW, и раскидываем там OutputDebugString вывод, ну скажем:
Ясное дело, вы изначально не знаете, где оно падает, так что тут работает метод последовательных приближений.
В принципе для "первой пристрелки" можно и без отладочной печати обойтись - ниже станет ясно почему.
Теперь запускаем WinDbg и открываем там наше сгенерированное приложение:
Если падает только среда разработки, то надо LabVIEW.exe грузить, разумеется
После загрузки мы встаём на точку останова - даём команду g для продолжения выполнения:
Теперь роняем наше приложение и тут же вываливаемся в отладчик:
Открываем call stack и смотрим цепочку функций, вызвавших исключение и там видим прекрасное:
Далее размышляем - если мы сами не вызываем MemBlock, то ConvertTime (To Time Stamp) - как раз то, откуда ноги растут.
Этот метод не панацея (особенно в многопоточной среде вы можете запросто видеть цепочку вызовов из другого потока и т.д), но иногда может помочь.
Буквально в прошлом месяце я так отловил спонтанное падение ранее работающего приложения при совершенно безобидном запросе загрузки ЦПУ через .net.
У меня это вот так выглядело:
А проблема оказалась в порушенном Performance Counter.
Upd: ещё маленький совет - вывод OutputDebugStringA можно смотреть в DebugView:
https://technet.microsoft.com/en-us/lib ... 96647.aspx
Это чтобы не скачивать и ставить тяжеловесный отладчик, а просто видеть, что последнее писалось в лог перед падением приложения.
Где-то так.
- Вложения
-
- Kill SubVI Test.zip
- (10.94 КБ) 194 скачивания
-
Sergey Ivanov
- expert
- Сообщения: 1217
- Зарегистрирован: 01 мар 2009, 20:54
- Награды: 5
- Версия LabVIEW: 2018
- Откуда: Санкт-Петербург, Кронштадт
- Благодарил (а): 11 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: Падает приложение
спасибо, посмотрю.dadreamer писал(а):LabVIEW при запуске создаёт во временной директории (обычно это C:\Windows\Temp) лог-файл, в который пишет системные сообщения и критические ошибки. Например, у меня в данный момент это файл LabVIEW_32_14.0f1_user_cur.txt. Попробуйте посмотреть, что там написано после падения программы.
Да, как exe. Запускается, работает какое-то время, потом падает. Время работы может быть всегда разным. При чём, на некоторых компьютерах отлично работает, на некоторых падает.Vitekkz88 писал(а):Sergey Ivanov, Программа как .exe запускается и падает? Или эти падения на этапе разработки из под LabVIEW происходят? Используемые dll раньше в проекты подключали и без проблем работало?
Может есть возможность дать потестить нам? Возможно дело в используемой ОС? Или падает на всех машинах?
Возможности потестить, к сожалению, нет (
Win8
Там вот что нашёл:AndreyDmitriev писал(а):Ну для начала посмотреть в системный лог Windows (Application).
Код: Выделить всё
Имя сбойного приложения: Player.exe, версия: 1.0.0.0, отметка времени: 0x51d22c87
Имя сбойного модуля: KERNELBASE.dll, версия: 6.3.9600.17031, отметка времени 0x53088860
Код исключения: 0xe0434352
Смещение ошибки: 0x00014dbd
Идентификатор сбойного процесса: 0x47c
Время запуска сбойного приложения: 0x01d0af164dad4242
Путь сбойного приложения: C:\Player13.03\Player.exe
Путь сбойного модуля: C:\Windows\SYSTEM32\KERNELBASE.dll
Код отчета: 3853a75a-1b31-11e5-8295-fcaa14163419
Код: Выделить всё
Скачайте ComboFix [url=http://download.bleepingcomputer.com/sUBs/ComboFix.exe]здесь[/url] и сохраните на Рабочий стол.
1. Внимание! Обязательно закройте все браузеры, временно выключите антивирус, firewall и другое защитное программное обеспечение. Не запускайте других программ во время работы Combofix. Combofix может отключить интернет через некоторое время после запуска, не переподключайте интернет, пока Combofix не завершит работу. Если интернет не появился после окончания работы Combofix, перезагрузите компьютер. Во время работы Combofix не нажимайте кнопки мыши, это может стать причиной зависания Combofix.
2. Запустите combofix.exe, когда процесс завершится, файл C:\ComboFix.txt прикрепите к сообщению.
Примечание: В случае, если ComboFix не запускается, переименуйте combofix.exe в combo@fix.exe
Добро пожаловать на http://rk-stud.ru/
-
- VIP
- Сообщения: 1337
- Зарегистрирован: 03 фев 2010, 00:42
- Награды: 6
- Версия LabVIEW: 6.1 - 2024
- Откуда: Германия
- Благодарил (а): 1 раз
- Поблагодарили: 42 раза
- Контактная информация:
Re: Падает приложение
Я б не стал запускать какие-то левые комбофиксы не разобравшись в сути проблемы и не понимая, что они делают с системой.Sergey Ivanov писал(а):Тут нашёл возможное решение проблемыКод: Выделить всё
Имя сбойного приложения: Player.exe, версия: 1.0.0.0, отметка времени: 0x51d22c87 Имя сбойного модуля: KERNELBASE.dll, версия: 6.3.9600.17031, отметка времени 0x53088860 Код исключения: 0xe0434352 Смещение ошибки: 0x00014dbd Идентификатор сбойного процесса: 0x47c Время запуска сбойного приложения: 0x01d0af164dad4242 Путь сбойного приложения: C:\Player13.03\Player.exe Путь сбойного модуля: C:\Windows\SYSTEM32\KERNELBASE.dll Код отчета: 3853a75a-1b31-11e5-8295-fcaa14163419
Исключение 0xe0434352 в KERNELBASE.dll с очень большой долей вероятности порождается исключением в .net. Если у вас несколько компьютеров, на части которых работает, а на других - нет, то имеет смысл сравнить версии .net, которые там установлены. Может помочь снижение версии (если у вас стоит, скажем 4.5, попробуйте 4.0).
Имеет смысл начать с поиска по ключевым словам "kernelbase.dll exception 0xe0434352", вот первая же ссылка:
http://stackoverflow.com/questions/2329 ... 000000a49d
Если воспользуетесь советом, который я выше дал, и поймате исключение в отладчик, скорее всего получите больше информации.
Вот примерно тоже самое, только чуть другими словами:
http://blog.fogcreek.com/production-deb ... xe053534f/