Конференция "Основная" » External exception C0000006
 
  • Тимохов Дима © (07.02.17 17:19) [0]
    Коллеги, здравствуйте!

    1. У пользователя есть моя программа:
    а. Запускается с сети.
    б. Используют BPL, но без runtime загрузки.
    в. Во всех моих EXE и BPL есть флаг
    {$SetPEFlags $0800} // IMAGE_FILE_NET_RUN_FROM_SWAP
    (через PEViewer проверил - реально он есть!).

    2. У пользователей периодически бывает External exception C0000006:
    а. Ошибки и раньше были. Но до того, как я поставил IMAGE_FILE_NET_RUN_FROM_SWAP их было вообще много.
    б. Сейчас иногда. Но метко! И бывают они у того пользователя, у которого компьютер имеет меньше, чем у других ОП.
    в. Понятно, что корень зла - запуск с сети.

    3. Поразмышляв над проблемой, подумал - а ведь флаг IMAGE_FILE_NET_RUN_FROM_SWAP в штатных BPL же не стоит!
    Проверил через PEViewer - действительно, например, в rtl100.bpl, флага нет!

    4. Вопрос - были ли у кого-то подобные проблемы и как они были решены?
    Не прописывать же в бинарник rtl100.bpl нужный флаг!?

    Спасибо!
  • Styx (07.02.17 17:45) [1]

    > Не прописывать же в бинарник rtl100.bpl нужный флаг!?

    Почему?
  • Тимохов Дима © (07.02.17 17:51) [2]

    > Styx   (07.02.17 17:45) [1]
    > > Не прописывать же в бинарник rtl100.bpl нужный флаг!?
    > Почему?


    Слишком хирургический метод, думаю. Справится смогу, полагаю.
    Но лучше уж тогда ланчер написать, чтобы на локальную машину переписывать и оттуда запускать.
  • Игорь Шевченко © (07.02.17 18:55) [3]

    > 2. У пользователей периодически бывает External exception
    > C0000006:


    Dr Watson надо настроить
  • Styx (07.02.17 19:24) [4]
    Что в нём хирургического? Как раз самый официальный.
    editbin /SWAPRUN:NET|CD rtl100.bpl
  • KSergey © (08.02.17 07:43) [5]
    А можно для тех кто не в теме, но интересуется, рассказать про предполагаемую гипотезу происходящего?
    Предполагается, что происходит попытка подгрузки части exe-шника, но сеть в это время недоступна? или как?
  • Тимохов Дима © (08.02.17 09:06) [6]

    > Игорь Шевченко ©   (07.02.17 18:55) [3]
    > Dr Watson надо настроить

    Это слишком круто для меня. Никогда не пользовался. Разбираться и разбираться.
    А ты сам этим пользуешься? Может ликбез какой-то есть почитать?


    > Styx   (07.02.17 19:24) [4]
    > Что в нём хирургического? Как раз самый официальный.
    > editbin /SWAPRUN:NET|CD rtl100.bpl


    Спасибо! Похоже, что это плановая хирургия.


    > KSergey ©   (08.02.17 07:43) [5]
    > А можно для тех кто не в теме, но интересуется, рассказать
    > про предполагаемую гипотезу происходящего?
    > Предполагается, что происходит попытка подгрузки части exe-
    > шника, но сеть в это время недоступна? или как?


    Как я это понимаю, то да, все верно.
  • Тимохов Дима © (08.02.17 11:20) [7]

    > Styx   (07.02.17 19:24) [4]
    > Что в нём хирургического? Как раз самый официальный.
    > editbin /SWAPRUN:NET|CD rtl100.bpl

    Еще раз благодарю!
    Единственное, потребовалось заменить на
    editbin /SWAPRUN:NET /SWAPRUN:CD rtl100.bpl

    Там еще и dumpbin есть - заголовки можно смотреть!
    Через dumpbin как раз проверил: меняет A18E на AD8E.
 
Конференция "Основная" » External exception C0000006
Есть новые Нет новых   [118671   +60][b:0][p:0]