Можно ли зарегистрировать стек вызовов Thread, когда когда-либо появляется поток в Qt - PullRequest
0 голосов
/ 07 марта 2019

У нас есть старое приложение Qt, основанное на виджетах, в котором, если мы продолжаем его работать в течение ночи, число потоков превышает 3000, а затем, если мы используем его, оно падает или иногда мы обнаруживаем, что оно уже аварийно завершилось.

Я пытался поместить журнал в возможные потоки, но все еще не понял, какой код генерирует эти потоки. Ниже приведен стек вызовов, который я взял, прервав выполнение.

QT Thread call-stack all thread seems waiting

Из этого стека вызовов я не могу определить, для какой цели создается поток. Событие попыталось дать имя потокам, вызвав setObjectName () из Qt (). Существует ли переносимый способ присвоения имени потока с помощью Qt? ) в потоке, но он не фиксируется в сборке выпуска и для нас Работа в сборке релиза - это только опция.

Итак, возможно ли регистрировать стек вызовов всякий раз, когда в приложении появляется какой-либо поток? Это перехват createThread это путь? Хотя я никогда не пробовал зацепить раньше. Или я могу перехватить все запущенные потоки?

Пожалуйста, предложите.

...