понедельник, 19 марта 2012 г.

VMware: ultra quick memory dump

Проблема

Необходимо создать дамп памяти (для отладки) виртуальной машины в определённый момент времени.
Но, например, в виртуальной машине не настроен отладчик ядра или же отладка происходит через виртуальный COM порт (создание полного дампа может занять немало времени).

Решение
  1. Создать снимок виртуальной машины.
  2. Найти имя файла снимка в рабочей директории ВМ.
  3. Используя утилиту vmss2core.exe, конвертировать снимок в формат WinDbg crash dump (конвертация происходит очень быстро). Например:
    "%ProgramFiles(x86)%\VMware\VMware Workstation\vmss2core.exe" –W "WinXp-Snapshot2.vmsn" "WinXp-Snapshot2.vmem"
    
  4. Результат конвертации будет в файле memory.dmp

Дополнительная информация

Debugging Virtual Machines with the Checkpoint to Core Tool
vmss2core - Failed to locate memory

вторник, 6 марта 2012 г.

WDK: RTL_INIT_OBJECT_ATTRIBUTES

Недавно узнал что в WDK есть макрос RTL_INIT_OBJECT_ATTRIBUTES, позволяющий совместить объявление переменной типа OBJECT_ATTRIBUTES и её инициализацию. В сочетании с макросом RTL_CONSTANT_STRING (для объявления и инициализации переменной типа UNICODE_STRING) повышает читаемость кода.

UNICODE_STRING someUnicodeString = RTL_CONSTANT_STRING(L"\\SystemRoot");

OBJECT_ATTRIBUTES objAttr = RTL_INIT_OBJECT_ATTRIBUTES(&someUnicodeString, OBJ_CASE_INSENSITIVE | OBJ_KERNEL_HANDLE);

пятница, 3 февраля 2012 г.

Link Shell Extension

Link Shell Extension

Поддержка создания Hard Links, Junctions и Symbolic Links в файловой системе NTFS существует довольно давно. Но довольно мало пристойных средств для работы с данными возможностями файловой системы.

На мой взгляд, одним из лучших является Link Shell Extension для Windows Explorer. Расширение имеет очень грамотный и продуманный интерфейс. Для существующих жестких и символьных ссылок отображается оверлейная иконка. При просмотре свойств файлов и каталогов с существующими ссылками появляется дополнительная закладка. Многоязычный интерфейс. Поддерживается, можно сказать, вся линейка операционных систем Windows NT4/2000/XP/2003/2008/Vista/Seven 32bit/64bit. Регулярно обновляется.

пятница, 20 января 2012 г.

Visual Studio: No Files Were Found To Look In. Find Was Stopped In Progress

Проблема

При использовании Find In Files в окне результатов поиска появляется сообщение:
"No Files Were Found To Look In. Find Was Stopped In Progress"
Закрытие-открытие IDE и/или перезагрузка компьютера проблему не решает.

Решение

Как выяснилось это баг Visual Studio! Притом достаточно старый. Для решения проблемы нужно нажать комбинацию клавиш Ctrl+Scroll Lock.

Рабочая среда: Visual Studio 2005

пятница, 9 декабря 2011 г.

PyKd: Boost.Python build cmd

В который раз потребовалось собрать библиотеку и как это обычно бывает весьма не кстати потерялся командный файл упрощающий этот процесс.
Пришлось всё делать сначала. В итоге получился командный файл для сборки библиотеки Boost.Python, который также можно использовать в качестве шаблона для сборки необходимых boost-библиотек:

::
:: Build x86/x64 Boost.Python library
::
call :ExecBjam 32
call :ExecBjam 64
pause
goto :EOF

::
:: Execute bjam.exe with required params
::
:ExecBjam
set arch=%1
set stagedir=stage

if "%arch%"=="64" set stagedir=stage64

bjam.exe ^
    -j 2 ^
    --toolset=msvc-9.0 ^
    release debug ^
    threading=multi link=static runtime-link=shared ^
    address-model=%arch% ^
    --with-python --with-date_time ^
    --stagedir=%stagedir% ^
    stage
goto :EOF

Краткое пояснение:
  • call :ExecBjam XX - сборка для i386 и amd64
  • -j N - задействовать N ядер
  • --toolset=msvc-9.0 - Visual Studio 2008
  • threading=multi - сборка с поддержкой многопоточности
  • --with-python - При сборке я предпочитаю использовать --with-libname вместо --without-libname, т.к. в этом случае будут скомпилированы только указанные библиотеки (что бы не собирать неиспользуемые библиотеки)
  • link=static - собрать статическую версию библиотек
  • runtime-link=shared - динамическая линковка с Visual C++ Runtime
  • --stagedir=stage%arch% - директория для выходных файлов (stage для x86 и stage64 для и x64)

вторник, 20 сентября 2011 г.

VMware + VirtualKD + WinDbg = Slow Snapshot Creation

Проблема

Запись снимка VM происходит очень долго (до 30 минут) если запущена отладочная сессия ядра.

Решение
  1. Закрыть отладчик.
  2. Сделать снимок.
  3. Запустить и подключить отладчик (Virtual Machine Monitor -> Run debugger).
Рабочая среда: VMware 6.x/7.x, WinDbg 6.12.0002.633, VirtualKD 2.5

воскресенье, 14 августа 2011 г.

FastStone Image Viewer


FastStone Image Viewer (FSViewer) - это бесплатная программа для просмотра, сортировки, конвертирования и редактирования изображений. Список возможностей весьма богат. Среди них, автоматический поворот изображения в соответствии с EXIF данными. Присутствует portable версия, обучающее руководство и онлайн-советы.

Программа имеет удобный и хорошо продуманный интерфейс. Автор регулярно исправляет найденные ошибки и добавляет новую функциональность.

На мой взгляд одна из лучших программ в своём классе!