Диагностирование мертвых блокировок в программе Win32

Пример выглядит как комбинация путей svg и отложенных анимаций.

Это сообщение в блоге от CSS-Tricks очень хорошо объясняет это (обратите внимание, что svg должен иметь штрихи для этого): https://css-tricks.com/svg-line-animation-works/

Ниже приведено руководство по использованию штрих-кода (используемого в примере), которое может быть полезно: https://css-tricks.com/almanac/properties/s/stroke-dashoffset/

5
задан Jorge Ferreira 18 September 2008 в 01:10
поделиться

6 ответов

Это сообщение должно запустить Вас на различных вариантах.. Проверьте сообщения, отмеченные с Отладкой..

Другая полезная статья об отладке мертвых блокировок..

8
ответ дан 13 December 2019 в 05:45
поделиться

Отладка истинной мертвой блокировки на самом деле довольно легка, если у Вас есть доступ к источнику и дампу памяти (или живой сеанс отладки).

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

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

4
ответ дан 13 December 2019 в 05:45
поделиться

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

1
ответ дан 13 December 2019 в 05:45
поделиться

Лучшая вещь состоит в том, чтобы запуститься путем добавления регистрирующихся операторов. Обычно я рекомендовал бы только вокруг совместно используемых ресурсов, которые заводят в тупик, но также и добавляют их, в целом мог бы указать на ситуации или области кода, который Вы не ожидали. Проблема базы данных stackoverflow.com, получившая широкое освещение в прессе, на самом деле оказалась log4net! stackoverflow команда никогда не подозревала, что log4net, и только путем исследования регистрирующийся (иронически) показал это. Я первоначально воздержался бы от любых сложных инструментов, например, WinDgb начиная с использования их не очень интуитивен, по моему скромному мнению.

-1
ответ дан 13 December 2019 в 05:45
поделиться

Отладка мертвых блокировок может быть хитрой. Я обычно делаю некоторый вход и вижу, где журнал останавливается. Я или регистрирую в файл или в использование консоли отладки OutputDebugString ().

0
ответ дан 13 December 2019 в 05:45
поделиться

Какой язык/IDE Вы используете?

В .NET можно просмотреть потоки приложения: отладка-> Windows-> Потоки или Ctrl+Alt+H

0
ответ дан 13 December 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: