Социальные сети

//---------- приколы в студии

Появилась необходимсоть установить ручками SЕH в студии. Для начала тривиально:

* __asm
* {
* push Handler
* push fs:[0]
* mov fs:[0],esp

Но у студии, как оказалось, на этот счет свои соображения... Что странно, в debug версии все работало как надо, а в release мой обработчик не получал управления. А студийные же хэндлеры отрабатывали нормально и даже вызывали RaiseException. Shift + F7 после исключения и мы в ntdll. Разбег происходил где-то после функций ntdll.RtlImageNtHeader и ntdll.RtlImageDirectoryEntryToData. Немного погуглив я наткнулся на то, что я не один с этой проблемой :-) Оказывается, есть поле в заголовке PE - LoadConfig. Если оно отлично от нуля, то SEH'и установленные вручную не срабатывают! Уж не знаю точно почему именно так, но факт в том, что когда мы компелируем прилоджение в студии с проинициализированным CRT - это флаг отличен от нуля, т.к. в хидере создается какая-то таблица и он, видимо, на это указвает. Я нашел 3 решения проблемы:

1. Отказаться от CRT.
2. "/SAFESEH:NO"
3. Обнулить флажок LoadConfig.

Естественно 1й и 3й не рассматриваются, т.к. отказываться от CRT, поддержку которой используют __try/.. и еще бог весть кто - нельзя, так же, как и обнуление флажка может привести к любым последствиям. С ключем "/SAFESEH:NO" все работает отлично. Вот что про него говорит msdn:

When /SAFESEH is specified, the linker will only produce an image if it can also produce a table of the image's safe exception handlers. This table specifies for the operating system which exception handlers are valid for the image.

Вот теперь, похоже, все встало на свои места. Вот эту самую Table of the image's safe exception handlers и генерирует CRT, а стало быть и злосчастный флаг.

Правда осталась одна проблема. После исключения мой обработчик возвращает 1 (стало быть исключение обработано), а студийный SEH все равно, как назло, вызывает RaiseException %)) Это приводит к позыву установленному в системе отладчику, что крайне не желательно :-) Пришлось обойтись без лишних свидетелей:

* __asm
* {
* push Handler
* push 0
* mov fs:[0],esp

;-)

//---------- end












Вам это будет интересно!

  • Свеженький дневник свеженькой студии
  • cesbo.com: создание бэкапов (часть 1)
  • Выражение для After Effects: Текст печатается в границах звука
  • Достала - послали
  • Рейтинг стоимости земельных участков по регионам (01.06-13.06)


  • Последние новости


    Шаг 5. Выбираем фирменное наименование организации

    Если вы собираетесь регистрировать новое юридическое лицо, то перед вами неизбежно встают необходимость выбора его названия и ряд сопутствующих вопросов. Следует ли проверять выбранное наименование организации на уникальность перед подачей документов на регистрацию? Можно ли зарегистрировать компанию с таким же наименованием, как и у другой, уже существующей орган...
    Читать далее »

    Шаг 4. Выбор системы налогообложения

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

    Аренда помещений

    Самым тесным образом с фактическим адресом организации связана Аренда Ею помещений, необходимых для налаживания выбранных видов деятельности. Для деятельности любой организации необходимо помещение. Однако недвижимость стоит сейчас очень дорого, и лишь немногие организации в состоянии приобрести помещение в собственность. В связи с этим значительная част...
    Читать далее »

    Шаг 3. Выбираем место нахождения организации

    МЕСТО НАХОЖДЕНИЯ ОРГАНИЗАЦИИ, ЕЕ ЮРИДИЧЕСКИЙ, ФАКТИЧЕСКИЙ И ПОЧТОВЫЙ АДРЕСА В ГК РФ приведено понятие «место нахождения юридического лица» – так называемый юридический адрес, официально зарегистрированный в ЕГРЮЛ. Однако юридическое лицо может располагаться и по другому адресу – фактическому. В гражданском законодательстве не содержит...
    Читать далее »

    Карточка

    С образцами подписей и оттиска печати ...
    Читать далее »

    Форма

    Документа, подтверждающего наличие лицензии Приложение 26 СЕРТИФИКАТ СООТВЕТСТВИЯ ...
    Читать далее »

    Уведомление

    О регистрации юридического лица в территориальном органе Пенсионного фонда Российской Федерации по месту нахождения На территории Российской Федерации Приложение 22 Свидетельство О регистрации страхователя в территориальном фонде Обязательного медицинского страхования При обязательном мед...
    Читать далее »