Hungry Mind , Blog about everything in IT - C#, Java, C++, .NET, Windows, WinAPI, ...

Visual Studio debugging tips

Visual Studio по функциональности и удобству заставляет курить в сторонке все IDE для плюсов. Но, некоторых мелочей, все же, очень не хватает. А иногда они просто хорошо спрятаны...

Довольно часто приходится вставлять куски кода вида hr = GetLastError();, запускать Error Lookup чтобы прочитать человеческим языком что же произошло. Я уже давно пользуюсь одним из более удобных способов:

  1. Если статический тип переменной - HRESULT, то окошки дебаггера Visual Studio (Watch #, Autos, Locals etc) автоматически отображают в колонке Value строку ошибки вместо кода.
  2. Псевдопеременная err или @err отображает текущее числовое значение GetLastError(). А для отображения строки вместо числа нужно применить форматирование - добавить через запятую hr. Пример: @err,hr.

    Visual Studio поддерживает множество форматов. Подробнее - Visual Studio Debugger --> Format Specifiers in C++

  3. При вызове COM-метода возвращаемое значение HRESULT попадает в регистр eax, поэтому @eax,hr расскажет нам в чем беда.

Есть и другие псевдопеременные - $handles, $vframe, $TID, $ENV, $CMDLINE, @registername или $registername, $clk, $user. Приятно, а?

0 коммент.:

Отправить комментарий

Copyright 2007-2011 Chabster