Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Продолжение старого архива (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/)
-   -   DeadLock - как ловить в gdb? (https://www.otvetnemail.ru/prodolzhenie-starogo-arhiva-804/deadlock-kak-lovit-v-gdb-368637/)

Guest 01.10.2011 04:56

DeadLock - как ловить в gdb?
 
Добрый вечерПроблема в том что если deadlock все ж случился - gdb ничего не покажет. Можно сказать отладчику "stop" - но не видно никакого стека вызовов (одни ??). Часто помогает так (псевдокод)КодC++ (Qt)int threadNo = GetCurThread();if (theLockOwner == threadNo) Alert("deadlock"); // поймали// захватываемDO_LOCK;theLockOwner = threadNo;...// работаем...// освобождаемtheLockOwner = -1;DO_UNLOCK;Но, увы, не всегда Вопросы типа "а какой компилятор, версия, платформа?" - прошу не задавать. Если б оно штатными средствами решалось - не поленился бы выучить. Прошу поделиться опытом отлова.Спасибо


Часовой пояс GMT, время: 23:39.


© www.otvetnemail.ru - Форум вопросов и ответов.