Archive

Posts Tagged ‘Маленькие хитрости’

“This program requires Windows 2000 or newer operating system”.

March 25th, 2009

Когда видишь такое сообщение на Windows 7, это означает, что разработчики приложения допустили ошибку либо в коде проверки версии операционной системы, либо, что менее вероятно, – в самом сообщении. Второй вариант возможен, если программа действительно не должна работать в новых версиях операционной системы. В обоих случаях, с точки зрения пользователя это чистой воды баг. То ли в коде, то ли в дизайне, то ли в маркетинговом отделе…

В любом случае обходятся такие ограничения элементарно просто. Достаточно открыть окно свойств исполняемого файла или ярлыка, выбрать вкладку «совместимость» и в выпадающем списке выбрать нужную версию операционной системы. При следующем запуске, программа будет запущена вместе с набором заплаток, которые в том числе подменяют номер версии системы:

appcompat

Маленькие хитрости «посмертной» отладки.

February 8th, 2009
Comments Off

Как то заметил, что в списке запущенных процессов постоянно болтается три штуки cdb.exe:

aedebug_cdb

CDB – это консольная версия WinDbg, которая у меня установлена в качестве «посмертного» отладчика (postmortem debugger).Обычно при этом падение приложения не проходит незамеченным – запускается консоль отладчика на весь экран. Трудно не заметить. В данном же случае, по всей видимости, фатальное исключение случалось в привилегированном процессе в отдельной сессии, соответственно и консоль создавалась в другой сессии.

Read more…

,

Хозяйке на заметку.

August 5th, 2008

Чтобы войти на машину с благозвучным названием “6XSD29G-052-18XS_32” под локальным пользователем, не нужно набивать полное имя пользователя как “6XSD29G-052-18XS_32\vasya”, проклиная при этом злого гения, запретившего Copy-Paste в поле ввода имени, и его коллегу, давшему компьютеру такое замечательное имя. Достаточно просто сказать “.\vasya” и все получится.

PS. Знал бы об этом пять лет назад – день жизни сэкономил бы уже наверное. Хотя мог бы и сам догадаться… :-)

Как Process Explorer подменяет Task Manager.

March 13th, 2008

А знаете, как Process Explorer подменяет собой стандартный Task Manager?

Process Explorer: Replace Task Manager.

Read more…

, , , ,

Разрядность ключа «Image File Execution Options».

January 9th, 2008

Ключ «Image File Execution Options» знаком, наверное, всем кто вынужден тратить много времени на отладку приложений. В частности, с его помощью можно указать системе всегда запускать определённый процесс под отладчиком. В этом же ключе утилита gflags.exe сохраняет выбранные отладочные опции и т.д. За подробностями рекомендую обратиться в Google, там есть много полезного.

Read more…

, , ,

Как посмотреть содержимое реестра из-под отладчика.

December 29th, 2007

Сижу дома простуженный. Ни о чём писать не хочется, поэтому буду краток.

Команда !dreg в WinDbg позволяет просматривать содержимое реестра прямо в процессе отладки. Это особенно удобно в двух случаях:

  1. При удалённой отладке, когда сессия отладчика – это единственный вид доступа к удалённой машине. Такое встречается сплошь и рядом, например, если удалённая машина находится в другой сети или домене;
  2. В случае, когда отладчик пользовательского режима контролируется ядерным отладчиком. Это тоже, в общем-то, вариант удалённой отладки, только в этом случае до отлаживаемой машины достучаться кроме как через отладчик вообще никак нельзя.

К сожалению !dreg не работает в ядерном отладчике, вернее работает, но показывает реестр той машины где запущен kd.exe, а не целевой, так бы этого не хотелось. Иначе бы счастье было бы полным.

Read more…

,

Как определить разрядность .EXE или .DLL?

October 24th, 2007

Как определить тип процессора для которого скомпилирован бинарный файл? Можно воспользоваться сборщиком из поставки Visual Studio 2005:

link.exe /dump /headers <.exe>
link.exe /dump /headers

Read more…

,