Jan 9, 2013 · Comments
Обработка исключенийОшибкиWindowsWow64x64
Краткое содержание первой части:
Не получается продолжить выполнение кода после того, как было сгенерировано исключение STATUS_INVALID_HANDLE - почему-то портится сохраненный контекст процессора. В частности, не сохраняются non-volatile регистры esi и edi.
Некто Indy засомневался в том, что происходит именно это. Следует сказать, что засомневался он не без оснований. На самом деле, способы возбудить исключение пользовательского режима из кода в ядре можно пересчитать по пальцам одной руки и все они формируют конекст процессора одинаково. Получается, что если бы регистры не сохранялись, то не работали бы все исключения, а не избирательно STATUS_INVALID_HANDLE.
Покопавшись в отладчике я понял в чем дело.
Read On →
Dec 27, 2012 · Comments
Всякая всячинаЮмор
В аэропорту Lihue, Hawaii увидел прекрасное - 24 штуки настенных часов, которые, как я понимаю, призваны показать текущее время в каждой из существующих часовых зон. (Тут нужно заметить, что временных зон не 24, а где-то около 40. Более того, их число иногда меняется, но не будем придираться).
Текущее время в …
При взгляде на картинку у меня немедленно возникает два вопроса. Во-первых, кто это под Рейкъявиком профилонил переход на единое всеземное время?
Read On →
Dec 11, 2012 · Comments
Всякая всячинаЮмор
Веселый тред на reddit.com: Как бы вы объяснили в чем состоит ваша работа человеку, который родился 1000 лет назад:
Marketing? I’d just say I’m a whore.
Using a self moving horseless cart I take Italian food to people who ask for it over vast distances.
Sorcery
Примерно каждый четвертый объявляется ведьмой и отправляется на костер:
I’m a web developer working in aerospace. Fuck.
You create illuminated manuscripts displaying the glory of machines that fly through the air.
Read On →
Dec 4, 2012 · Comments
ИнструментыНедокументированные функцииОтладкаПрограммированиеWindows Kernel
Начиная с Windows XP в ядро встроена поддержка трассировки описателей ядра (AKA handle tracing). Включение трассировки имеет двойной эффект. Во-первых, все операции с ядерными описателями сохраняются в циклический буфер (откуда их можно потом прочитать). Во-вторых, при любой попытке использовать несуществующий описатель генерируется исключение STATUS_INVALID_HANDLE. Фактически, проверка корректности операций с описателями в Application Verifier - это тонкая обертка вокруг функций трассировки, предоставляемых ядром. Расширение отладчика !htrace - аналогично.
Read On →
Oct 22, 2012 · Comments
КосмосТехникаSpace shuttle
Шаттл на улицах Лос-Анджелеса:
Очень красиво!
Oct 17, 2012 · Comments
датацентрGoogle
Первая, как утверждается, фотосессия датацентра Google:
Прямая ссылка: Where the Internet lives.
Sep 25, 2012 · Comments
ОтладкаПрограммированиеЮмор
А сегодня мы с вами прослушаем лекцию о том, как избежать появления растительности на ладонях и чем её потом выводить…
Разбор crash dump-ов твоего приложения, собранных с пользовательских машин - занятие и увлекательное, и поучительное. Поучительное не столько потому, что демонстрирует твои собственные успехи во всей красе, но потому что не менее красиво показывает достижения других. Одновременно испытываешь и неловкость за содеянное (нахомутал, чего уж там) и гордость (да не так уж и нахомутал - посмотрите, как другие отличились), и облегчение (все одим миром мазаны). А сегодня мы разберем одно из часто встречающихся явлений - overclocking.
Read On →
Sep 23, 2012 · Comments
ПрограммированиеWiX
Для продукта, над которым я сейчас работаю, нужно было сделать инсталляцию под Windows. Установить несколько файлов, создать пару ключей в реестре, обновиться на более свежую версию,.. - как раз работа для WiX. WiX, - он, конечно, не без греха. Все-таки, это всего лишь обертка вокруг Windows Installer, чьё нетривиальное нутро то и дело дает о себе знать. Взять хотя-бы тот факт, что Windows Installer понимает черытех компонентный номер версии (a.b.c.d), но при сравнии номеров версий принимает во внимание только старшие три числа.
Read On →
Aug 16, 2012 · Comments
ПрограммированиеProcess ExplorerWindows Internals bookWindows KernelWow64
В новой редакции Windows Internals обнаружился старый-знакомый баг. Там приводится пример стека 32-х битной нити, выполняющейся под Wow64:
Иллюстрация сопровождается комментарием:
An example of a Wow64 thread inside Microsoft Office Word 2007 is shown in Figure 5-13. The highlighted stack frame and all stack frames below it are the 32-bit stack frames from the 32-bit stack. The stack frames above the highlighted frame are on the 64-bit stack.
Что не совсем верно.
Read On →
Jul 14, 2012 · Comments
русскийфонетика
Существует мнение, что “в русском языке слова читаются точно так же, как и пишутся”. Ага, щас! Вы пробовали своего ребенка учить читать? “Карова”. Нет, доченька. Пишеться “о”, но читается “а”. Почему? Гм. Ну, как тебе объяснить?.. А мама говорит “корова”? Просто мама говорит по-украински, а там нет правила про безударную “о”. С кем это я сейчас говорил? Не обращай внимания, просто запомни - у папы “карова”, а у мамы - “корова”.
Read On →