Понимание вывода команды WinDBG! Clrstack - PullRequest
0 голосов
/ 11 января 2012

Возможно, StackOverflow - не место для этого вопроса, но если я нахожусь не в том месте, то, возможно, кто-то может указать мне на лучший форум.Я хочу лучше понять вывод некоторых команд WinDBG, вывод этого ! Clrstack :

0:008> !clrstack -a

OS Thread Id: 0xe30 (8)

ESP      EIP     
04a4f108 7776f871 [HelperMethodFrame: 04a4f108] 

04a4f1ac 73ee70ec System.Diagnostics.EventLog.get_EntryCount()
    PARAMETERS:
    this = <no data>
    LOCALS:

04a4f1bc 73df24e2 System.Diagnostics.EventLog.CompletionCallback(System.Object)
PARAMETERS:
    this = 0x01207574
    context = <no data>
LOCALS:
    0x04a4f1d8 = 0x001c73b7
    <no data>
    <no data>

Кто-нибудь знает, какое значение в ESP и EIP Corresspond для?Кроме того, значения в параметрах PARAMETERS и LOCALS, такие как this = 0x01207574 , дают ли это значение объекта, вызвавшего метод?Или это означает что-то еще?

1 Ответ

4 голосов
/ 11 января 2012

Вот некоторые ответы на ваши вопросы:

ESP = Регистр указателя стека, указывающий на верхушку вашего стека (растущий вниз).

EIP = Указатель инструкций (он же счетчик программ) указывает на выполняемую в данный момент инструкцию в памяти (растет вверх).

Parameters показывает расположение параметра вашего вызова функции (System.Object) в памяти.

Locals дает вам адреса и значения локальных переменных в функции.

...