Инструмент для обнаружения DeadLock.
От: Аноним  
Дата: 29.09.08 09:59
Оценка:
Добрый день.

В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит
Объём исходного кода достаточно велик и большей частью написан не мной.
Есть ли какие-то инструменты, которые позволяют обнаружить причины deadlock у зависшего приложения? В идеале показать место в исходном коде или вообще хотя б как-то помочь в такой ситуации.
В гугле тулзов не нашёл. Может искал не так.

Спасибо
Re: Инструмент для обнаружения DeadLock.
От: orangy Россия
Дата: 29.09.08 13:19
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Добрый день.


А>В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит

WinDbg + SOS + SOSEx + !dlk
Если !dlk не помогает, то !SyncBlk и ручной анализ.
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Re: Инструмент для обнаружения DeadLock.
От: V.Petrovski Беларусь  
Дата: 29.09.08 13:30
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Добрый день.


А>В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит


Может это поможет http://www.debuginspector.com


SafeDevelop
Re: Инструмент для обнаружения DeadLock.
От: SP_ Украина  
Дата: 30.09.08 15:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день.


А>В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит

А>Объём исходного кода достаточно велик и большей частью написан не мной.
А>Есть ли какие-то инструменты, которые позволяют обнаружить причины deadlock у зависшего приложения? В идеале показать место в исходном коде или вообще хотя б как-то помочь в такой ситуации.
А>В гугле тулзов не нашёл. Может искал не так.
Оставляешь на ночь, утром приходишь, студией цепляешься кзависшему процессу, смотришь все его потоки и находишь те которые висят и ждут непонятно чего.
Re[2]: Инструмент для обнаружения DeadLock.
От: Tom Россия http://www.RSDN.ru
Дата: 01.10.08 07:08
Оценка:
Здравствуйте, orangy, Вы писали:

O>Здравствуйте, <Аноним>, Вы писали:


А>>Добрый день.


А>>В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит

O>WinDbg + SOS + SOSEx + !dlk
O>Если !dlk не помогает, то !SyncBlk и ручной анализ.

А ApplicationVerifier в случае .NET-а и использования WinDbg не помогает? Для unmanaged насколько я помню он очень помогал.
Народная мудрось
всем все никому ничего(с).
Re[3]: Инструмент для обнаружения DeadLock.
От: orangy Россия
Дата: 01.10.08 10:12
Оценка:
Здравствуйте, Tom, Вы писали:

А>>>В WinForms приложении возникает взаимоблокировка потоков. Сценарий более-менее стабильный при выполнении длительных операций. То есть оставляешь приложение работать на ночь — утром приходишь, а оно висит

O>>WinDbg + SOS + SOSEx + !dlk
O>>Если !dlk не помогает, то !SyncBlk и ручной анализ.
Tom>А ApplicationVerifier в случае .NET-а и использования WinDbg не помогает? Для unmanaged насколько я помню он очень помогал.
AV нужно сначала включить, а потом ловить дедлок. А в сложномногопоточных приложениях некоторые дедлоки встречаются крайне редко, и воспроизвести их обычно невозможно. Поэтому в тот момент когда приложение уже зависло, всё что есть — это дебаггер, который можно подключить.
... << RSDN@Home 1.2.0 alpha rev. 655>>
"Develop with pleasure!"
Re: Инструмент для обнаружения DeadLock.
От: geralt_rsdn  
Дата: 28.10.08 14:16
Оценка:
Может это поможет, вроде тулза для поиска дедлоков
в клиентских приложениея заточена
http://www.acorns.com.au/blog/?p=129
... << RSDN@Home 1.2.0 alpha 4 rev. 1108>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.