OberonCore
https://forum.oberoncore.ru/

работоспособность модуля Decoder
https://forum.oberoncore.ru/viewtopic.php?f=22&t=6509
Страница 1 из 2

Автор:  budden [ Воскресенье, 08 Декабрь, 2019 19:54 ]
Заголовок сообщения:  работоспособность модуля Decoder

Есть ощущение, что после перехода на новый формат объектных файлов данный модуль перестал работать. Это так или мне только кажется? Я сделал небольшое количество опытов и неизменно получил TRAP, хотя мои опыты весьма далеки от полноты. Существуют ли работоспособные версии?

Автор:  budden [ Воскресенье, 08 Декабрь, 2019 20:38 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Ааааа, оказывается ему нужно передавать объектный файл... Модуль в памяти и байты как-то без большого успеха пока что. Объектный файл открывался в релизе 2012-07-29, буду дальше раскручивать...

Релиз 2016-06-24, WinAos/a2.exe, Obw файл по-прежнему открывается, GofW - нет. Кстати, мой "работающий" отладчик работал именно потому, что у меня завалялся доступный TestDbg.Obw. Как только я его стёр (для ясности), и отладчик сломался.

Как только я его вернул (и ещё кое-что починил), отладчик тоже починился.

Таким образом, для работающего отладчика нужно либо выкинуть функционал дизассемблирования, либо научить Decoder понимать новый формат объектных файлов.

Автор:  budden [ Воскресенье, 08 Декабрь, 2019 22:45 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

2019-05-16 написано: "Added basic support for decoding dynamically loaded modules using new reflection" и похоже, что только в этот момент действительно что-то поменялось в декодере. Предыдущее существенное изменение - 2012-08-06 (раньше нашего диапазона).

Но и этот релиз тоже работает аналогично: Obw файл открывается, а GofW - нет.

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 10:44 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Да вроде работает - нужно передавать имя модуля без расширения

Автор:  budden [ Понедельник, 09 Декабрь, 2019 14:28 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Спасибо! Но можно ли немного конкретики - в какой версии, под какой платформой, и какое имя модуля? Да заодно и как передавать - через командную строку? Я пытался нажимать на кнопочки в оконном интерфейсе.

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 15:13 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Команда Decoder.Open ModuleName~
Работает под всеми платформами

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 15:31 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Можно в параметрах указывать и имя процедуры, которая будет выведена
Decoder Open ModuleName ProcedureName~

Автор:  budden [ Понедельник, 09 Декабрь, 2019 15:37 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Ну вот например:

Цитата:
TRAP 45481468 [1] PL 3 access violation

System: WinAos (32bit) May 14 2019 Kernel_CRC=FFFFFFFF97D97F7C Uptime=45E3A550A

Processor: CS=00000023 DS=0000002B ES=0000002B SS=0000002B PC=00A48F72 ESI=00000000 EDI=071568F4 ESP=02B5FC60 PID=00001DA0 EAX=008ABBC4 EBX=07156F58 ECX=00226000 EDX=07159A54 EBP=02B5FC68 FS=00000053 GS=0000002B TMR=141B3E75

FLAGS: cPazstIdo iopl0 {16, 9, 2..1}

Features={31, 29..21, 19, 17..11, 9..0}{30..19, 17, 15..11, 9..7, 5..0}

Process: 7584 run 0 2008ABABC:Commands.Runner NIL {28, 0}

StackTraceBack:

Decoder.MakeHeader:21 pc=10784626 [00A48F72H] = 10784605 + 21 crc=10A470EB

module= [@20] 071568F4 (Modules.Module)

header=02B5FC74-> [@36] ...(Decoder.ObjHeader)

State Decoder: (CRC = 10A470EB)

nofWindows= [@10788092] 0

win= [@10788096] 00000000 NIL

decoderTypes= [@10788100] ... (NO STRING)

nofDecoders= [@10788120] 5

lastExt= [@10788088] ""

Decoder.DecoderWindow.New:437 pc=10784398 [00A48E8EH] = 10783961 + 437 crc=10A470EB

fileName= [@16] "FoxParser"

c= [@12] 00000000 NIL

vc= [@-4] 00D07A7C (WMStandardComponents.Panel)

moduleInfoObjectFile= [@-8] 00000000 NIL

moduleInfoMemory= [@-12] 00000000 NIL

msg= [@-268] ""

module= [@-272] 071568F4 (Modules.Module)

header= [@-368] ...(Decoder.ObjHeader)

res= [@-372] 0

extPos= [@-376] 0[00000000]

@hiddenIRVar0= [@-380] 00000000 NIL

@hiddenIRVar1= [@-380] 00000000 NIL

Decoder.Open:157 pc=10786850 [00A49822H] = 10786693 + 157 crc=10A470EB

context= [@12] 008AB7C4 (Commands.Context)

name= [@-256] "FoxParser"

pc= [@-260] 0

@hiddenIRVar0= [@-264] 00D0791C (Decoder.DecoderWindow)

Commands.Runner.@Body:670 pc=4597915 [0046289BH] = 4597245 + 670 crc=659A514F

---------------------------------


Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 15:43 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

В сборке со старым форматом объектных файлов в команде нужно указать расширение Decoder.Open Decoder.Obw

Автор:  budden [ Понедельник, 09 Декабрь, 2019 16:02 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

64-разрядная-то сборка уж явно с новым форматом объектного файла. Ни одного файла с расширением Obw не нашёл.


Decoder.Open FoxParser~

Код:
TRAP 92929304 [1] PL 3 access violation

System: WinA2 (64bit) May 14 2019 Kernel_CRC=FFFFFFFFFBFAC4A8 Uptime=260CC27E

Processor: CS=0000000000000033 DS=000000000000002B ES=000000000000002B SS=000000000000002B PC=0000000006F7793A RSI=0000000000000000 RDI=00000000012D9D90 ESP=000000000589FB40 PID=0000000000000A24 RAX=0000000008562B80 RBX=00000000012DA7C8 RCX=0000000000000003 RDX=00000000012DE590 RSI=0000000000000000 RDI=00000000012D9D90 SP=000000000589FB40 EBP=000000000589FB50 FS=0000000000000053 GS=000000000000002B TMR=0000000014330511

 FLAGS: cpazstIdo iopl0 {16, 9, 1}

 Features={31, 29..21, 19, 17..11, 9..0}{30..19, 17, 15..11, 9..7, 5..0}

Process: 2596 run 0 20000000008562A50:Commands.Runner NIL {28, 0}

StackTraceBack:

Decoder.MakeHeader:33 pc=116881722 [0000000006F7793AH] = 116881689 + 33 crc=CFB99CD3

  module= [@40] 00000000012D9D90 (Modules.Module)

  header=000000000589FB68-> [@72] ...(Decoder.ObjHeader)

State Decoder: (CRC = CFB99CD3)

  nofWindows= [@116886756] -2


Может быть, всё же откроете секрет, на какой ОС, какую сборку и какой модуль Вы открываете?

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 16:30 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

В любой поддерживаемой сборке из репозитория.
Но проблемы есть, нужно синхронизировать Decoder с исправлениями в Reflection

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 17:10 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

О, ну да, оно использует неправильный декодер

Автор:  budden [ Понедельник, 09 Декабрь, 2019 17:25 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Ответил в личку.

Автор:  Sergej Durmanov [ Понедельник, 09 Декабрь, 2019 19:01 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Изменил порядок инициалицации декодеров.

Автор:  budden [ Вторник, 10 Декабрь, 2019 20:47 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

С помощью удаления инициализации лишних декодеров в модуле Decoder (искать I386 в Decoder.Mod) и с помощью ручного создания поддиректории win64/work (которая теряется в гите) удалось успешно выполнить "Decoder.Open PET~" в сборке от 2019-09-13, посему вопрос можно считать решённым.

Большое спасибо Сергею!

Кстати, чтобы не было проблемы с отсутствующей директорией work (думаю, многие сегодня предпочитают гит-зеркала свн-у), можно положить в неё какой-нибудь файлик, например, .gitkeep
или README, вот есть обсуждение этой темы:

https://stackoverflow.com/questions/722 ... nd-gitkeep

Автор:  Ярослав Романченко [ Вторник, 10 Декабрь, 2019 20:58 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

budden писал(а):
думаю, многие сегодня предпочитают гит-зеркала свн-у
Вот, честно, абсолютно по-фиг, на чём "крутится" репозиторий :)
Приходилось "выживать" и на динозаврах типа VSS :lol:

Автор:  budden [ Среда, 11 Декабрь, 2019 09:54 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Речь-то не о выживании, а о том, что если есть git зеркало, то многие им воспользуются, а тут, оказывается, чтобы оно заработало, нужно знать ещё волшебное заклинание. Если зеркало существует из-за каких-то требований клиентов, или чтобы организовать vendor lock и получить должность штатного шамана, то всё ок. Если же оно сделано для популяризации, то ситуация, когда ты скачал программу с зеркала, она не работает и через месяц выясняется, что нужно ещё знать волшебное заклинание, может кого-нибудь разочаровать и лучше бы такого зеркала вовсе не было.

Автор:  Ярослав Романченко [ Среда, 11 Декабрь, 2019 10:12 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

budden писал(а):
Речь-то не о выживании
Просто уже сам факт, что нужно что-то шаманить что-бы сохранялись пустые папки в "популярном движке репозитория" говорит о многом. Многие "современные технологии" создаются садистами для мазохистов :)

Автор:  budden [ Среда, 11 Декабрь, 2019 10:17 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Лично я ненавижу гит (хотя и svn не фонтан), но дело тут не в этом. Хороший тон - это когда скачанная из интернета программа работает без шаманства.

Автор:  Ярослав Романченко [ Среда, 11 Декабрь, 2019 10:22 ]
Заголовок сообщения:  Re: работоспособность модуля Decoder

Я понял, Денис. Согласен. Системы должна быть работоспособной и для любого странника, случайно скачавшего её для "посмотреть, что это такое".

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/