Форум: "Основная";
Текущий архив: 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