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