Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Вниз

Как обнаружить взаимоблокировки   Найти похожие ветки 

 
Smithson   (2003-07-09 10:58) [0]

Нужна помощь по методике!
Есть многопоточное приложение. Для блокировок объектов общего доступа использую критические секции. Спустя какое-то время (три-четыре часа) приложение встает на взаимоблокировки (видимо, косяк с алгоритмом). Подскажите, как это поймать из отладчика (в идеале из отладчика среды)?
Поскольку вылезает не сразу, точки останова смысла не имеют.
По моему разумению, ожидание освобождения критической секции выполняет система - как узнать состояние программы до провала в эти ожидания после того, как они уже наступили?


 
Poirot   (2003-07-09 10:59) [1]

а Объекты синхронизации юзать не пробовали сами, не полагаясь на систему? Всётаки в ручную будет надёжнее...


 
Smithson   (2003-07-09 11:00) [2]

Что это изменит?


 
Smithson   (2003-07-09 11:01) [3]

Единственный вариант, который я пока вижу - это жестокое протоколирование в файл обращений к критическим секциям. Но очень не хочется. Есть еще идеи?


 
MBo   (2003-07-09 11:02) [4]

>Спустя какое-то время (три-четыре часа)
Время примерно постоянно? уверен, что дело в блокировках, а не в исчерпани ресурсов вследствие незакрытия или чего-то подобного?

Кое-что о синхронизации, сырой перевод:
http://mbo88.narod.ru/threads.htm


 
Digitman   (2003-07-09 11:14) [5]


> Есть еще идеи?


есть. тоже связанная с протоколированием (не обязательно в файл, можно и в окно другого приложения-логгера слать лог-сообщения), но не требующая поиск по всему проекту обращений к крит.секциям с целью вставки перед ними лог-операторов.

достаточно при инициализации перехватить глобально для тек.процесса вызовы EnterCriticalSection()/LeaveCriticalSection(), а в процедуре перехвата (перед передачей управления оригин.функции) анализировать ID секции , ID код.потока, обращающегося к ней и вести программный триггер состояния блокировки секции.


 
Smithson   (2003-07-09 11:24) [6]

Уверен, ресурсы я контролирую, а главное, потоки "засыпают" - падает нагрузка на процессор.


 
Smithson   (2003-07-09 11:25) [7]

То есть ничего более простого (штатного) нет?



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.07.21;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
14-68000
NickBat
2003-07-02 16:52
2003.07.21
Вопросы, вопросы...


6-67952
Миха
2003-05-14 11:07
2003.07.21
Почта и Прокси


3-67663
Senator
2003-06-26 10:03
2003.07.21
IBX


6-67938
Behemoth
2003-05-14 15:38
2003.07.21
Где мне найти в IdPOP3 (Indy) приартаченный к письму файл?


14-68015
Andryk
2003-07-04 14:20
2003.07.21
Просто флешка





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