:: Visual Foxpro, Foxpro for DOS
Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
Добрый день!

Столкнулся с необходимостью внесения правок в проект, написанный на VoxPro, который уже много лет используется в моей организации. Опыт работы с FoxPro никакой, но деваться некуда. Исходников не сохранилось, так что приходится его декомпилировать посредством ReFox. Проблема состоит в том, что проект состоит из кучи exe и я не могу понять, как же мне отлаживать сделанные правки...
-Если я декомпилирую и запущу основной файл, то я не могу отлаживать прочие мелкие exe.
-Если я декомпилирую нужный мне exe, то я смогу его исправить, но не смогу нормально отладить, так как он предназначен для работы в общей среде программы и использует некие глобальные переменные.
Не подскажете как с этим зоопарком разбираться?! Пока что единственная мысль - декомпилировать основной exe, декомпилировать нуджный мне exe, изменять в коде ссылку с exe на pjx и пытаться отлаживать из основного файла, потом менять ссылки обратно и компилировать обратно в exe. Но я же банально запутаюсь. Не может быть, чтобы это так писалось изначально. Подскажите пожалуйста, куда копать? Что почитать?
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
прошелмимо

Сообщений: 784
Дата регистрации: 21.02.2012
Wiss
как с этим зоопарком разбираться
бывают исчо зоопарки из exe и множества APP,
и это есть правильно,
т.е. создается константный EXE, который практически не меняется ..
и АРР уже постоянно модифицируюся/дорабатываются, ... масштабируются ....
(заказчику отдаются обновления в виде АРР ...)

Wiss
Подскажите пожалуйста, куда копать? Что почитать?
ну создать каталоги под каждый проект.
разложить там файлики ...
на них пути ...
смотреть взаимосвязи ...
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
Проблема в том, что у меня куча exe. Первый exe создаёт основную форму и менюшку + посредством другого exe загружает глобальные переменные. Каждый пункт меню - свой exe, каждый чих - свой exe (всего их 91). Тот exe, который мне нужен, это где-то 4-й в иерархии (main.exe вызывает ехе, который вызывает ехе, который вызывает мой ехе). Я правлю "свой" ехе, компилирую обратно и всё рушится. Причём я не могу понять что именно рухнуло, какой-то из этих 4-х ехе или ещё какой-то 5-й. Потому что отладка у меня работает, конечно, только на первом файле, который я декомпилировал и открыл как проект из FoxPro. Причём в этом "проекте" у меня 1 prg файл на 500 строк и всё. Формы нет (она создаётся прямо в коде), "при нажатии на пункт меню Х выполнить exe1, при событии Y выполнить exe2 и т.д." После моих манипуляций с кодом, само-собой возникают ошибки, причём возникают они неизвестно где и как (debuger не работает в скомпилированных exe). Как можно запустить этот проект, чтобы было понятно какая из программ крашнулась?! Пока что я не могу даже тот файл, который правлю отладить (он exe и запускается другими подпрограммами).

Просто как-то непривычно, что все части проекта скомпилированны и непонятно с какой стороны подходить к их отладке. Если я из декомпилирую, то они перестанут вызываться (или нет?), а если я их не декомпилирую, то не смогу запустить отладку.



Исправлено 1 раз(а). Последнее : Wiss, 10.06.19 13:51
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Божья_коровка

Сообщений: 25720
Дата регистрации: 23.08.2001
Wiss
свой exe (всего их 91)
Ничего себе.

А вообще приложение сложное? может ну его в топку без исходников...91 экзешник депкомпилировать, там концов не соберёшь потом в этой проге...


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...




Исправлено 2 раз(а). Последнее : Божья_коровка, 10.06.19 14:04
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
pasha_usue

Сообщений: 3647
Откуда: Е-бург
Дата регистрации: 06.10.2006
Обычно для отладки такой архитектуры создают отдельную программу, которая в IDE моделирует архитектуру основного решения, и уже в этой среде производится отладка вызываемых отдельных блоков. Раз исходников нет, придётся такую штуку писать самостоятельно, на базе того что есть в основном запускающем exe.

В других случаях, отладка становится адищем.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
Божья_коровка
А вообще приложение сложное?
вроде бы ничего особенного. Просто программа для формирования десятка отчётов, в которые мне нужно добавить пару столбцов. Казалось бы - проще написать заново, но внутрь программы зашиты некие "алгоритмы контролей", которых никто не знает. Так что приходится ковыряться в коде. Поправил базу, поправил шаблон формы, поправил контроль, а потом всё крашнулось потому, что где-то ещё есть кроссформенный контороль. Приходится искать в коде в каком файле этот кросформенный контроль, а потом глазами смотреть, что там могло пойти не так. Вместо нормального дебагера, который остановился бы на месте ошибки.


Исправлено 1 раз(а). Последнее : Wiss, 10.06.19 14:11
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Аспид

Сообщений: 3475
Откуда: Москва
Дата регистрации: 01.04.2005
Wiss
Просто программа для формирования десятка отчётов, в которые мне нужно добавить пару столбцов.
Wiss
Казалось бы - проще написать заново

Так и напишите заново свой проект.
Пусть старая крутится, а когда нужны новые отчеты, запускают вашу.

Wiss
Опыт работы с FoxPro никакой
И реализовать можно на чем угодно, что лучше знаете.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
прошелмимо

Сообщений: 784
Дата регистрации: 21.02.2012
Каждый пункт меню - свой exe

ну, видимо, тот кто делал это, - был любитель EXE/

Не понимаю такого.

Для старта большого/сложного приложения в фокспро, - достаточно маленького запускающего ядра.
Далее такое ядро может взаимодействовать со множеством АПП (репортпривью.апп например - яркий пример из "стандарта"/поставки фокспро) ...


пробуйте все рекомпилить ,
посмотрите взаимосвязи....

но делать 91 EXE - это нечто ...
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
Спасибо всем за ответы. Успокоили, что, вероятно, я всё открываю правильно и из 91 exe единый проект по нажатию кнопки собрать нельзя. Придётся разбирать все отдельно и смотреть.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Wiss
Спасибо всем за ответы. Успокоили, что, вероятно, я всё открываю правильно и из 91 exe единый проект по нажатию кнопки собрать нельзя. Придётся разбирать все отдельно и смотреть.

Скорее всего, ваши .exe однотипны. Каждый .exe имеет стартовый файл. Попробуйте в 2-3 вызовах .exe заменить на вызов этого файла и посмотреть, что из этого получится.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
lulgu
Попробуйте в 2-3 вызовах .exe заменить на вызов этого файла
Спасибо, это должно существенно упростить мне работу. Заменил exe на полученные из него prg и fxp фалы и программа продолжила работать. Изменения, вносимые в prg файл влияют на ход выполнения программы.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Wiss
lulgu
Попробуйте в 2-3 вызовах .exe заменить на вызов этого файла
Спасибо, это должно существенно упростить мне работу. Заменил exe на полученные из него prg и fxp фалы и программа продолжила работать. Изменения, вносимые в prg файл влияют на ход выполнения программы.

Если и дальше будет получаться, то вы эти подпрограммы сможете собрать в один проект.
Систематизируйте их и, возможно, понадобится небольшое меню.
Ошибки компиляции смотрите в файле .err, если он появится.
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Qv_1

Сообщений: 201
Дата регистрации: 14.02.2007
Делов то. Напиши к девяносту одному exe еще десять своих, которые будут делать то, что тебе нужно, и добавь в проект.



Исправлено 1 раз(а). Последнее : Qv_1, 10.06.19 16:50
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Wiss
Автор

Сообщений: 8
Дата регистрации: 10.06.2019
lulgu
Ошибки компиляции смотрите в файле .err
А вот это отдельная проблема, которой я ещё не занимался. Этих ошибок в .err у меня вагон и маленькая тележка, потому что все exe запускаются следующим образом:

SET DEFAULT TO dir_ppp+"\PrgPPP_11"
DO Uprvvod_Sub.exe

таким образом, при сборке проекта компилятор не может найти эти файлы и пишет соответствующее сообщение в .err.
Да, уже попробовал писать полные пути к файлам в DO, чтобы они нормально определялись при компиляции - работает, но я повешусь потом отлавливать все ссылки на все файлы, так что, вероятно, придётся структуру оставлять "как есть".
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
Строго говоря, SET DEFAULT лучше иметь один, "главный".
И при необходимости изменений "возвращаться":
LOCAL lcOldDefault
lcOldDefault = SET('DEFAUILT'"
SET DEFAULT TO 'newdefault'
......
SET DEFAULT TO lcOldDefault.

Да и нужно ли в данном случае - с полными путями непонятно.
У вас 91-exe задуманы чтобы не вводить их в основной проект, похоже это автономные отчеты.
По-моему, пути можно вставлять через макроподстановку, для 91 вызова возможно даже где-то отдельно..



Исправлено 1 раз(а). Последнее : lulgu, 10.06.19 18:00
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
AndyNigmatec

Сообщений: 1551
Откуда: Волгоград
Дата регистрации: 28.06.2015
А я вот что-то не понял - о каких глобальных переменных идет речь ежели стартуется куча отдельных exe = экземпляров рантайма?
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
lulgu

Сообщений: 1838
Дата регистрации: 30.11.2016
AndyNigmatec
А я вот что-то не понял - о каких глобальных переменных идет речь ежели стартуется куча отдельных exe = экземпляров рантайма?

Троллик прилетел, опять за свое принялся.



Исправлено 1 раз(а). Последнее : lulgu, 10.06.19 18:32
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Божья_коровка

Сообщений: 25720
Дата регистрации: 23.08.2001
AndyNigmatec, а как думаешь подобный подход разработки (пусть даже отчетности) он оправдан? В чем смысл плодить столько экзешников, почти под сотню?


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
AndyNigmatec

Сообщений: 1551
Откуда: Волгоград
Дата регистрации: 28.06.2015
Я лично не вижу такого смысла ... у себя я экзешники дополнительные делал именно с целью выполнения какой-либо задачи в отдельном потоке.

Дополнение: вроде как у ТС отчетность какая-то так реализована - затрудняюсь предположить зачем именно так.



Исправлено 1 раз(а). Последнее : AndyNigmatec, 10.06.19 19:10
Ratings: 0 negative/0 positive
Re: Декомпиляция проекта, в котором много exe
Божья_коровка

Сообщений: 25720
Дата регистрации: 23.08.2001
AndyNigmatec
Я лично не вижу такого смысла ... у себя я экзешники дополнительные делал именно с целью выполнения какой-либо задачи в отдельном потоке.
Ну да, я тоже так делала, но у меня от силы было несколько штук. А тут получается каждый шаг - новый экзешник. Что говоря я впервые вижу, чтобы подобным образом строили приложение и не могу понять о чём же думал разработчик или аналитик кто строил модель данного приложения. Т.е. какая то же цель закладывалась если он пошёл по этому пути....


------------------
Жись, она как зёбра, полоса белая, полоса черная, а мне всегда задница достается...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 18 (Гостей: 18)

© 2000-2024 Fox Club 
Яндекс.Метрика