Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно


Moderator


Сообщения: 53170
Благодарности: 15429

Профиль | Отправить PM | Цитировать


Цитата __sa__nya:
Делаю команду для просмотра списка драйверов загруженных в момент BSOD'a, должна быть такая: dps esp-3000 esp+3000
Смысл не такой, это не список загруженных в момент BSOD драйверов.

Регистр ESP - указатель на вершину стека (аббревиатура SP - Stack Pointer). Соответственно, приведённая вами команда выводит данные в интервале плюс-минус 12288 (3000 - шестнадцатеричное) от него. Если среди этих данных есть вызовы функций, выводятся имена модулей/функций из таблицы символов.

Кстати, вместо интервала (esp-3000, esp+3000) лучше использовать (StackLimit, StackBase).

Такой метод просмотра стека отличается от обычного (от k, !analyze -v и т. д.) тем, что здесь сканируется вся область, выделенная под стек для определённого потока в режиме ядра (в 32-битных системах - 12 КБ, в 64-битных - от 24 КБ и более). Поэтому достоверность тут меньше (команда захватывает не только текущую цепочку вызовов, но и фрагменты предыдущих, которые не относятся к сбою), но во многих случаях этот способ оказывается полезен (если информация об обычном стеке неполная или повреждена).

Последний раз редактировалось Petya V4sechkin, 08-04-2019 в 19:50.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:12, 07-04-2019 | #8