Windbg & quot;! Locks & quot; команда не работает, могу ли я получить информацию в любом случае?

Во время отладки файлов дампа мне нужно регулярно проверять наличие блокировок, для которых я использую windbg команда расширения !locks, Когда все идет хорошо, это обеспечивает вывод, подобный следующему:

CritSec +54a8a8 at 0054a8a8
WaiterWoken        No
LockCount          0
RecursionCount     1
OwningThread       13d8
EntryCount         0
ContentionCount    0
*** Locked

CritSec +b73a8d at 00135e8d
WaiterWoken        No
LockCount          0
RecursionCount     1
OwningThread       55f3
EntryCount         0
ContentionCount    0
*** Locked

...

Scanned 662 critical sections

Иногда, однако, я получаю следующее сообщение об ошибке:

Stopped scanning because of problem reading critical section debug info

Scanned 7 critical sections

Можно ли в любом случае иметь какую-то информацию? (Например, где это critical section debug infoкак я могу прочитать это без !locks команда, …)

3

Решение

Лучшая альтернатива !locks это использовать !cs -s -l -o увидеть !cs это отобразит все заблокированные критические секции, трассировку стека владельца и трассировку стека критической секции, вы можете пропустить -l если вы хотите все критические разделы. Возможно, вам потребуется включить трассировку стека в пользовательском режиме, используя gflags !gflag +ust не забудьте удалить это, когда это не нужно !glag -ust,

Чтобы отобразить информацию о критическом разделе, вы можете сделать это, если у вас есть адрес: https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/displaying-a-critical-section

так !critsec ADDRESS или используя команду типа дисплея dt dt RTL_CRITICAL_SECTION ADDRESS будет работать, если у вас есть адрес.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]