Как восстановить C# объект из указателя ClrMd - PullRequest
0 голосов
/ 04 апреля 2020

Я использую ClrMd для проверки памяти в приложении C# и последовательно создал объект процесса выполнения в процессе. Я использую объект времени выполнения для вызова EnumerateObjects (). Это возвращает коллекцию ulongs, которые являются ссылками на все объекты в куче. Если ссылка на строку, у меня нет проблем с восстановлением строки с помощью ClrType GetValue (). Однако когда я вызываю GetValue () для ссылки на другие объекты, GetValue возвращает то, что кажется другой ссылкой (то есть ulong).

Нужно ли выполнять какой-то C# небезопасный код? code sample Кстати, я получаю тот же результат с EnumerateObjectAddresses () (есть ли разница между ними?)

...