Как распечатать значение регистра в предложении When hit точки останова в Visual Studio?

В отладчике Visual Studio 2010 есть возможность распечатать сообщение при достижении точки останова. (Щелкнув правой кнопкой мыши точку останова и выбрав «При попадании».

Я пытаюсь вывести значение регистра EAX при достижении точки останова, но не могу понять, как это сделать.

Вот что я пробовал:

$EAX, @EAX, {EAX}

Эта страница, похоже, тоже не упоминает об этом:

http://msdn.microsoft.com/en-us/library/232dxah7%28VS.80%29.aspx

Я был бы очень признателен за любую помощь в попытке распечатать этот регистр при достижении точки останова.


person merlin2011    schedule 01.04.2012    source источник
comment
Уверен, что это невозможно. Документы MSDN упоминают только $TICK и $FILEPOS как другие псевдопеременные, не указанные в диалоговом окне. Очевидный @eax не работает. Отправить отзыв на connect.microsoft.com   -  person Hans Passant    schedule 01.04.2012


Ответы (1)


Кажется, это недокументировано, поэтому я документирую его здесь, в Stackoverflow, теперь, когда я понял это с помощью грубой силы.

Это распечатает значение регистра EAX в десятичной форме.

{$EAX}

Я еще не придумал, как напечатать его в других формах.

person merlin2011    schedule 01.04.2012
comment
Чтобы получить его в шестнадцатеричной форме, вы не можете просто привести его: {(void*)$EAX}? - person jalf; 01.04.2012
comment
@merlin, это значение не работает для меня в VS2012, говорит, что $EAX не определен, даже если он находится в {} - person Maslow; 19.10.2012
comment
@Maslow Я не пробовал с VS2012, только с VS2010. Возможно, в VS 2012 были внесены изменения. - person merlin2011; 20.10.2012