Как уже упоминалось пару раз, псевдорегистр @err
покажет последнее значение ошибки, а @err,hr
покажет ошибку в виде строки (если это возможно).
По словам Энди Пеннелла, члена команды Visual Studio, начиная с VS 7 (Visual Studio .NET 2002), использование символа '@' для обозначения псевдорегистратов не рекомендуется - они предпочитают использовать '$' ( как в $err,hr
). И $, и @ пока поддерживаются.
Вы также можете использовать псевдорегистр $ err в условной точке останова; так что вы можете разбить строку кода, только если последняя ошибка не равна нулю. Это может быть очень удобный трюк.
Некоторые другие псевдорегистры, которые вам могут пригодиться (из выдающейся книги Джона Роббинса, «Отладка приложений для Microsoft .NET и Microsoft Windows» ):
$tib
- показывает блок информации о потоке
$clk
- показывает счетчик часов (полезен для функций синхронизации). Для более удобного использования поместите часы $clk
, а затем дополнительные часы $clk=0
. Вторые часы очистят псевдорегистр после отображения текущего значения, поэтому следующий шаг или шаг, который вы делаете, дает вам время только для этого действия. Обратите внимание, что это грубая синхронизация, которая включает в себя значительную часть накладных расходов отладчика, но она все еще может быть очень полезной.