Я использую 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
}
}
После того как я введите команду в ближайшем окне Visual Studio, то результат будет ниже "DSO!":
OS Id Тема: 0xf6c (3948)
ESP/REG Название объекта
Почему нет ничего лучше? Я думал, что должны быть аргументы i и локальная переменная j.
Спасибо за мой отвечать на мои наивные вопросы ...
Спасибо, Брайан. Есть ли в SOS.dll команды для получения списка varibales в стеке? Нужно ли использовать WinDbg? – smwikipedia
Имейте в виду, что локали/параметры могут храниться в регистрах, поэтому для оптимизированной сборки вы не сможете увидеть все детали - даже в WinDbg. –
Кроме того, поскольку вы загружаете SOS в VS, почему бы просто не использовать окно Locals, Watch или Immediate для просмотра местных жителей? –