Трассировки стека для NullReferenceException
очень неинформативны, они просто включают имя метода и стек вызовов. Любая переменная в методе может быть нулевой, и ее трудно отлаживать, когда ошибка не воспроизводится на машине dev.
Знаете ли вы, как получить дополнительную информацию об этой ошибке, возможно, получить имя переменной? Или у вас есть лучшие способы его отладки?
Отслеживание этого имени не всегда возможно (это может быть выражение).
И там, где это возможно, это повлечет за собой неприемлемые накладные расходы. Подумайте, что во время выполнения потребуется отслеживать почти все ссылочные переменные, что было бы дорогостоящим и запрещало бы всевозможные оптимизации.
Также см. мой ответ на Осмотрите управляемый стек и сообщение в блоге, на которое он ссылается.
Простым решением является построение более согласованной нулевой проверки в вашем собственном коде:
void Foo(Bar b)
{
if (b == null) throw new ArgumentNullException(nameof(b));
...
}
Debug.AssertNonNull
(или как он должен быть) только для проверки работоспособности при дальнейшей отладке.