Как перечислить NULL-указатели в стеке текущего вызова?
От: LWhisper  
Дата: 12.04.19 14:14
Оценка:
Ищу самое простое решение для элементарной задачи — получить содержимое определенного стек-фрейма и найти в нём NULL-указатели.

По какой-то причине, такая тривиальная задача не нашла быстрого решения. Подскажите — куда смотреть?

Наиболее реалистичный вариант на данный момент — это использовать ICorDebug::DebugActiveProcess. Но для этого потребуется запустить внешний процесс-отладчик, подключиться к текущему процессу, зарегистрировать кучу коллбеков, построить взимодействие между текущим процессом и внешним. В общем, как из пушки по воробьям.

Ищу более простое решение.

P.S. Задача — перечислить и распечатать все null-ptr при возникновении NullReferenceException. MS эту проблему как-то решили и в последних версиях .NET Framework стали писать имя параметра с null-значением. Хочу также, но под .NET 4.5.2.
.net il debug stack unsafe
Re: Как перечислить NULL-указатели в стеке текущего вызова?
От: pugv Россия  
Дата: 12.04.19 14:48
Оценка: 4 (1)
AFAIK только Debug-API из внешнего процесса.
Кстати, даже в этом случае не всегда всё будет гладко. Например метод может быть заинлайнен, или локальные переменные соптимизированы, или уже вышли из области видимости и собраны GAC, или...
Re[2]: Как перечислить NULL-указатели в стеке текущего вызова?
От: LWhisper  
Дата: 12.04.19 23:22
Оценка:
Здравствуйте, pugv, Вы писали:

P>AFAIK только Debug-API из внешнего процесса.

P>Кстати, даже в этом случае не всегда всё будет гладко. Например метод может быть заинлайнен, или локальные переменные соптимизированы, или уже вышли из области видимости и собраны GAC, или...

Обидно. ((
Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.