Pull to refresh
  • by relevance
  • by date
  • by rating

Строчка кода, убивающая IE6 :)

Browsers
Японский блогер Hamachiya2 «придумал» короткую строчку HTML кода, которая некорректно понимается IE6 и он выдает критическую ошибку :-)
<style>*{position:relative}</style><table><input></table>

Не верите? Проверьте! В остальных браузерах все хорошо.

Источник — immike.net

Обновлено: Чтобы крушить IE7 нужно просто добавить доктайп :) О, великие борцы со стандартами!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" «www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>
<style>*{position:relative}</style><table><input></table>
Читать дальше →
Total votes 63: ↑59 and ↓4 +55
Views 232
Comments 97

Crash dump'ы и KeCapturePersistentThreadState

System Programming *
Я тут обнаружил очень занятную недокументированную функцию, экспортируемую ядром, на которую нет ссылок внутри ядра, но которая делает весьма занятную вещь. А именно, записывает в переданный кусок памяти полноценный minidump на данный момент времени.
Весьма полезно с учетом того, что там (в дампе) есть оффсеты неэкспортируемых структур типа PsLoadedModuleList, которые могут пригодиться.
Спасибо Freeman за помощь)

ULONG
NTAPI
KeCapturePersistentThreadState(
PCONTEXT Context,
PKTHREAD Thread,
ULONG BugCheckCode,
ULONG BugCheckParameter1,
ULONG BugCheckParameter2,
ULONG BugCheckParameter3,
ULONG BugCheckParameter4,
PVOID VirtualAddress
);


Входные параметры:
Context — текущий контекст (можно от балды, нужно лишь заполнить EIP & ESP)
Thread — текущий поток. можно указать NULL, тогда она сама возьмет текущий
BugCheckCode, ParametersX — багчек код и аргументы, которые она запишет в дамп.
VirtualAddress — адрес выделенных 16 страниц памяти (64кб), куда она положит аккуратно готовенький крешдамп.

Пример:

Заголовок дампа:
typedef struct _DUMP_HEADER {
/* 00 */ ULONG Signature;
/* 04 */ ULONG ValidDump;
/* 08 */ ULONG MajorVersion;
/* 0c */ ULONG MinorVersion;
/* 10 */ ULONG DirectoryTableBase;
/* 14 */ PULONG PfnDataBase;
/* 18 */ PLIST_ENTRY PsLoadedModuleList;
/* 1c */ PLIST_ENTRY PsActiveProcessHead;
/* 20 */ ULONG MachineImageType;
/* 24 */ ULONG NumberProcessors;
/* 28 */ ULONG BugCheckCode;
/* 2c */ ULONG BugCheckParameter1;
/* 30 */ ULONG BugCheckParameter2;
/* 34 */ ULONG BugCheckParameter3;
/* 38 */ ULONG BugCheckParameter4;
/* 3c */ CHAR VersionUser[32];
/* 5c */ UCHAR PaeEnabled;
UCHAR NotUsed[3];
/* 60 */ PVOID KdDebuggerDataBlock;
} DUMP_HEADER, *PDUMP_HEADER;


Использование функции: www.everfall.com/paste/id.php?mkgmkfg1a057

Кодес получает дамп, показывает адерса MmPfnDatabase, PsActiveProcessHead, PsLoadedModuleList и сбрасывает дамп на диск. Дамп можно спокойно запихать в WinDbg и изучать

Вообщем, весьма занятная штуковина…

Надо будет переписать свой gr8lkd (http://gr8lkd.googlecode.com/) с использованием этой функции.
Total votes 17: ↑11 and ↓6 +5
Views 1.6K
Comments 3

Способ вызвать краш браузера Safari

Safari
Занимаясь экспериментами с HTML и CSS, нашёл способ удалённо закрыть у пользователя браузер Safari.

Простое открытие страницы со следующим кодом просто крашит браузер, при чём как в ОС Windows XP SP2, так и в MacOS X Leopard 10.5.5.

<style>
wbr { position: absolute; }
</style>

<wbr />

Баг проявляет себя на последней версии Safari (3.2.1) и в предыдущих (как минимум, 3.1.2).

Посмотреть на практике можно здесь: grinchik.ru/side/crash-safari.html
Total votes 122: ↑112 and ↓10 +102
Views 3.3K
Comments 91

Исходный код → Crash!

Lumber room
Вчера по нажатии в Firefox 3.0.9 на «Просмотр исходного кода» FF падал с ужасным скрипом. Это меня поразило очень сильно. Первое что я подумал: Mozilla где-то допустила баг.

Но сегодня с утра при запуске FF выскачило окошко обновления Add-on'ов и предложило обновить HTML Validator, что я и сделал.

О, чудо! FF больше не вылетает при просмотре HTML!

Выяснилось, что виноват был именно этот add-on. Вот перевод заявления автора add-on'а с официального сайта (стиль повествования максимально сохранен):

Предыдущие версии вызывали баг в FIREFOX 3.0.9 в DOM API!
Настоящее решение было бы Firefox 3.0.10 но он не будет доступен еще 1 месяц. Практически, при просмотре исходного кода в Firefox 3.0.9 он падает! Некоторые строки кода которые работали начиная с Firefox 1.0 теперь вызывают падение Firefox'а...
Из-за этого, я вынужден выпустить очень быстрый 0.856 чтобы решить Firefox 3.0.9 баг Так что, подсветка строк с HTML ошибками теперь отключена! К несчастью, у меня не было лучшего решения.
— Работает в Firefox 3.1 beta 3.
— Работает в Seamonkey 2 alpha 3
Total votes 13: ↑9 and ↓4 +5
Views 154
Comments 2

Исходный код → NO Crash!

Lumber room
Сегодня история с крушением FF при просмотре исходного кода получила продолжение. Mozilla Foundation выпустили Firefox 3.0.10. Он конечно же сам обновился и вот что я прочитал в примечаниях к релизу:

Название: Крушение в nsTextFrame::ClearTextRun()
Значение: Критическое
Заявлено: 27 апреля, 2009
Сообщил: Marc Gueury, Daniel Veditz
Продукты: Firefox

Починили в: Firefox 3.0.10

Описание

Одно из исправлений в безопасности в Firefox 3.0.9 производило регрессию, которая приводила к частым крушениям у некоторых пользователей. Были сильно затронуты пользователи add-on'а HTML Validator, но и другие пользователи также испытывали это крушение в некоторых ситуациях. Анализируя это крушение мы обнаружили, что оно вызывалось из-за искажения памяти похожего на случаи уязвимости в безопасности отмеченные ранее.

Дополнительные ссылки
UPD: Для тех кто не использует HTML Validator обновление не представляет ценности, но для верстальщиков оно крайне удобно. Кроме этого с выходом 3.0.10 появляется вероятность того, что автор HTML Validator обратно включит подсветку ошибок в исходном коде.
Total votes 9: ↑5 and ↓4 +1
Views 165
Comments 2

Mozilla Crash Report по два раза за час. Достало!

Firefox
image
Надеол глючный FF. На всех компах, куда ставил 3-й FF, везде он постоянно падает… с плагинами или без, не имеет значения. Перешел пока на Chrome, хотя и тот падает, но в 3 раза реже. Когда был 2-й лис, все работало (хоть 50 закладок) нормально. Куда катиться мир?! Или я один такой?!
Total votes 135: ↑27 and ↓108 -81
Views 6.8K
Comments 79

Введение в postmortem debugging

Website development *
Падение программы — это очень гадкая вещь. К сожалению все мы не идеальны и даже применяя наиболее безопасные методы разработки (например TDD) мы не застрахованы от того что программа свалится. Особенно плохо, если она свалится уже у заказчика. Но на пути к идеалу у нас всегда есть инструментарий, который может помочь расследовать падение программ, выявить ошибки, а главное исправить их.
Одно грустно, что многие, даже очень опытные разработчики не знакомы с этим инструментарием и многие компании не включают данную практику в свою работу. Я говорю о postmortem отладке.
В данной статье я хочу показать азы работы с данным зверем и возможно подтолкну этим самым разработчиков на расширение своих познаний в области оладки. Итак, приглашаются к чтению C++ Windows разработчики, тим-лиды, ну и руководителям отделов разработки будет неплохо ознакомиться.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Views 13K
Comments 18

JVM падает (2 истории про вызов native library)

Java *
Хочу поделиться двумя историями с одинаковым сюжетом, но разными развязками.
Может быть кому то, у кого тоже падает JVM будет полезно

1. Native code вызывается из Явы через JNI. Юнит тест — проходит на ура, приложение (GUI, Swing) крэшится.
Подключаемся через дебагер ddd (это такая оболочка над gdb, ежели кто из яваистов не знает :) ) — видим что падает с длинющим стеком. Выясняем с автором нативной библиотеки, что там они десериализуют через boost (такая библиотека для C++) дерево большой глибины. И там рекурсия.

Возникает идея (не сразу, 3 дня споров и гугления), что при вызове из приложения стек больше и он переполняется. Находим параметер для JVM: -XX:ThreadStackSize=

Работает!

2. Native code вызывается через JNA. Присутствую колбеки обратно в Явы, так как я описывал. Юнит тест бежит, приложение падает!

Читать дальше →
Total votes 33: ↑25 and ↓8 +17
Views 2K
Comments 21

Повторные проблемы с доступностью к Google из России

IT-companies
Недоступны публичные DNS, серверы gmail, часть CDN-сетей.

Веб-сервисы google сейчас работают.

В нашу службу техподдержки поступает много жалоб о проблемах с доступностью разных сайтов.

>ping -t 8.8.8.8

Обмен пакетами с 8.8.8.8 по с 32 байтами данных:
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 8.8.8.8: число байт=32 время=123мс TTL=38
Превышен интервал ожидания для запроса.

Трафик на MSK-IX / SPB-IX аналогично падает.




Спад трафика на магистралях в Москве уже достиг 10%, а в Питере около 20% общего трафика.

Напомню, что в прошлый четверг были проблемы с аналогичными симптомами, про которые google сообщил «Причина сбоя — проблемы с оптоволоконной сетью в России».

Официальной информации пока нет. Следим за событиями.

upd Видно, что google перестраивает маршруты

upd отrouter: На прошлой неделе при проблемах у Google, были аварии на сети RETN. Сейчас тоже авария на их же сети с 14:42. У меня подозрение, что Google использует транспортную сеть RETN до России.

upd 15:39 На текущий момент все сервисы google доступны. В этот раз время перебоя составило около часа.

Источник cadmus.ru/practice/Google_snova_nedostupen
Total votes 33: ↑25 and ↓8 +17
Views 907
Comments 40

Leap second привёл к зависанию некоторых серверов на Linux

Configuring Linux *
Пользователь Bron Gondwana на ServerFault отмечает, что начиная с утра 30-го июня некоторые его сервера на Debian Squeeze стали зависать, не подавая никаких признаков жизни.

С одного из серверов удалось вытащить вот такой дамп:

[3161000.864001] BUG: spinlock lockup on CPU#1, ntpd/3358
[3161000.864001] lock: ffff88083fc0d740, .magic: dead4ead, .owner: imapd/24737, .owner_cpu: 0

Читать дальше →
Total votes 73: ↑67 and ↓6 +61
Views 15K
Comments 74

Постоянно отваливается Flash Plugin в Google Chrome? Есть решение!

Development for Windows *
Преамбула.

Настигло меня некоторое время назад горе. После посещения сайтов и страничек, с повышенной концентрацией флэш-контента, с жалобой на флэш-плагин, стал валиться Хром, внезапно, капитально и беспощадно. Перезапуск Хрома не спасал, требовался полный ребут системы.

Надо заметить, что Хром я люблю и пользую для динамического контента, вроде Ютуба и всего флэш- и js- содержащего (по совершенно очевидным причинам).

Лень-матушка убеждала не придавать этому значения. Но каждый ребут для меня — это целое событие, т.к. открыт десятки, если не сотни, вкладок, запущены десятки программ. Уж такой у меня образ жизни. Поэтому ребут — весьма нежелательное событие.

Настал тот миг, когда терпение моё лопнуло, и я решил разобраться с этой проблемой. Поставить в этой истории точку.

Решение, к слову сказать, оказалось довольно простым, и, одновременно, действенным.
Хочу решение!
Total votes 59: ↑44 and ↓15 +29
Views 333K
Comments 36

Краш Samsung Galaxy S III:

Nomobile.Ru corporate blog

Мы все здесь любим гаджеты, это понятно, но порой возникают ситуации, когда хочется их раскурочить, сплющить, взорвать… В общем куда-то выплеснуть свою агрессию. В связи с этим мы придумали формат Destruction show, в которых цинично, но красиво убиваем устройства. Вниманию хабрасообщества предлагается второй выпуск нашей youtube-программы, главным героем которого стал всем известный Samsung Galaxy S III.

Читать дальше →
Total votes 57: ↑14 and ↓43 -29
Views 6.8K
Comments 23

История одного Crash-а, и NSLog'а его лечившего

Programming *Development for iOS *Objective C *
Лечу Crash'и NSLog'ами. Недорого. Многолетний опыт. 100% гарантия.

Примерно таким заголовком можно было бы описать то, что три с половиной месяца назад происходило у меня на одном из проектов. Вернее, это даже был не мой проект, но с проблемой crash'а пришлось разбираться именно мне.

Все началось с того, что на одном из относительно больших проектов начало стабильно вываливаться исключение при авторизации пользователя. «Ну и что тут такого? У всех бывает. Проверку на nil забыли поставить или где-то накосячили. „Тоже, мне, большое событие — crash на проекте“, — подумает большая часть программистов. В принципе — абсолютно согласен. Crash — не такое уж и редкое явление в программировании под iPhone, и с ним сталкиваешься по десять раз на день. Но этот был особенным. От него уже начало попахивать „магией“, когда мне сказали про его некоторые параметры и особенности:

  • Воспроизводимость на симуляторе: 100%
  • Воспроизводимость на устройстве: 0%
  • Путь к крэшу (после локализации крэша): ~ 40 секунд
  • Настройки оптимизации при компиляции (-O1,-O2...) не влияют на воспроизводимость
  • XIB'ы в проекте не используются


Да выглядел он довольно безобидно:

// Code
UITextView * textView = [ [UITextView alloc] initWithFrame:CGRectMake(0, 150, _width, _height)];

// Exception
*** Terminating app due to uncaught exception 'CALayerInvalidGeometry', 
    reason: 'CALayer bounds contains NaN: [0 0; nan 200]'


»Ну тут же и ежу понятно, что width — после вычисления — NaN!", — подумал я. Бегло поглядев где и как вычисляется ширина вьюхи, и не найдя ничего особого опасного, я, для утверждения своей догадки, поставил перед созданием вьюхи NSLog. А вдобавок, и точку останова на строке с созданием элемента.
// Source:
NSLog(@"width = %f", _width);

//Output:
width = 200


«Гм», — подумал про себя я, и продолжил выполнение программы после точки останова. И крэша не произошло…

Что было дальше? Читайте во второй части сразу под катом...
Total votes 162: ↑157 and ↓5 +152
Views 29K
Comments 50

iPhone 5S обзавелся «синим экраном смерти»

Smartphones IT-companies
Translation
image

Новый iPhone 5S от Apple порадовал пользователей неожиданной фичей: BSOD-ом, или «синим экраном смерти». BSOD является типичным сообщением об ошибке старых версий ОС Windows, но многие пользователи iPhone 5S сообщают о неожиданных перезагрузках своих устройств после BSOD-а. Синий экран появляется в первую очередь из-за родных приложений Apple iWork. На видео видно, что перезагрузки вызваны переключением между приложениями, но пользователи так же сообщают и о перезагрузках во время работы.
Читать дальше →
Total votes 61: ↑42 and ↓19 +23
Views 63K
Comments 36

Повреждение стека в одном из методов NSString

Development for iOS *Objective C *
Sandbox
Хочу написать про один странный креш, с которым разбирался на работе.

Креш происходил стабильно при заходе в папку с корейскими символами. Проблема оказалась во вроде бы безобидном коде следующего вида:

NSURLComponents* urlComp = [[NSURLComponents new] autorelease];
...
urlComp.path = path;
urlComp.user = username;
...

Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Views 6.3K
Comments 10

Убийственная связка из NSCache и UINib

Development for iOS *Objective C *
Хочу поделиться еще одним крешем, с которым разбирался пару месяцев назад. Сейчас, по прошествии времени, крешрепорты такого типа больше не наблюдаются в HockeyApp, а раньше были одними из самых популярных. Собственно, проблема наблюдалась уже довольно давно, но тогда наше приложение еще использовало TestFlight и информации для анализа не доставало. Креш характеризовался примерно таким стеком:

Thread 0 Crashed:
0   libobjc.A.dylib                      0x39abcf42 objc_msgSend + 2
1   CoreFoundation                       0x2bfe0c61 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 10
2   CoreFoundation                       0x2bf3c6d5 _CFXNotificationPost + 1782
3   Foundation                           0x2cc6e129 -[NSNotificationCenter postNotificationName:object:userInfo:] + 70
4   Foundation                           0x2cc72c8f -[NSNotificationCenter postNotificationName:object:] + 28
5   UIKit                                0x2f750883 -[UIApplication _performMemoryWarning] + 132
6   libdispatch.dylib                    0x3a0107a7 _dispatch_client_callout + 20
7   libdispatch.dylib                    0x3a021253 _dispatch_source_latch_and_call + 624
8   libdispatch.dylib                    0x3a0122ed _dispatch_source_invoke + 210
9   libdispatch.dylib                    0x3a013e1f _dispatch_main_queue_callback_4CF + 328
10  CoreFoundation                       0x2bfee3b1 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 6
11  CoreFoundation                       0x2bfecab1 __CFRunLoopRun + 1510
12  CoreFoundation                       0x2bf3a3c1 CFRunLoopRunSpecific + 474
13  CoreFoundation                       0x2bf3a1d3 CFRunLoopRunInMode + 104
14  GraphicsServices                     0x332cf0a9 GSEventRunModal + 134
15  UIKit                                0x2f5487b1 UIApplicationMain + 1438
16  xxx                                  0x0015bb81 main (main.m:18)
17  libdyld.dylib                        0x3a030aaf start + 0
Читать дальше →
Total votes 13: ↑11 and ↓2 +9
Views 6.6K
Comments 6

Почему айфон перезагружается от арабской смс

Abnormal programming *Development for iOS *Development for Android *Objective C *C *
DISCLAIMER

Не пытайтесь повторить это со своими телефонами и телефонами коллег! Судя по комментариям, много людей уже заразили свои телефоны, а 100%-тного лекарства еще нет!

DISCLAIMER 2

Даже не пытайтесь назвать так Wi-fi точку!

Около 15 часов назад на Reddit появился забавный пост, который рассказывал о перезагрузке айфона после странного сообщения вида:
Не шлите никому на айфон
Power
لُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ



Читать дальше →
Total votes 184: ↑178 and ↓6 +172
Views 232K
Comments 138

Linux все еще не торт

Virtuozzo corporate blog Open source *IT systems testing *System Programming *Development for Linux *
Эта история началась около месяца назад, когда Кирилл Тхай добавил поддержку вложенных пространств имен в CRIU, после чего наша система CI приказала долго жить. В тот момент ничто не предвещало тех увлекательных приключений, в которые мы оказались вовлечены.

image
Читать дальше →
Total votes 101: ↑94 and ↓7 +87
Views 42K
Comments 44
1