как увидеть мои управляемые объекты в стеке? - PullRequest
1 голос
/ 09 апреля 2010

Я использую SOS.dll в VisualStudio для отладки моей программы на C #. Программа как ниже.

Команда отладки: ! DumpStackObjects .

class Program
{
    static void Main()
    {
        Int32 result = f(1);
    }

    static Int32 f(Int32 i)
    {
        Int32 j = i + 1;
        return j;            <===========BreakPoint is here
    }
}

После того, как я ввел команду "! Dso" в непосредственном окне Visual Studio, результат будет следующим:

Идентификатор потока ОС: 0xf6c (3948)

Имя объекта ESP / REG

Почему ничего нет? Я думал, что должны быть аргументы i и локальная переменная j.

Спасибо, что ответили на мои наивные вопросы ...

1 Ответ

3 голосов
/ 09 апреля 2010

!dumpstackobject сбрасывает ссылки в стеке на объекты.Т.е. с этой командой вы не увидите типы значений.Используйте !clrstack -l для просмотра локальных данных (используйте -p для просмотра параметров и -a для обоих).

...