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