:: Visual Foxpro, Foxpro for DOS
Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005
День добрый !

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

Удачи ...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
BladeRunner

Сообщений: 50
Дата регистрации: 14.06.2004
Возможности у отладчика достаточно обширные, но того, что интересует - нет. Класс будет выгружен из памяти.
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005

BladeRunner писал(а):
Цитата:
Возможности у отладчика достаточно обширные, но того, что интересует - нет. Класс будет выгружен из памяти.

Спасибо.
А что новенького в отладчике относительно VFP8 ?
Или в каком месте это можно почитать ...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, BladeRunner!

Строго говоря ПРАВКОЙ класса занимается не отладчик, а Form/Class Designer -
а они то и выгружают используемый класс из памяти. Кстати для PRG класса это
не обязательно - т.е. править его можно - другое дело что FXP старый
останется, а вот для перекомпиляции таки придётся выгрузить класс.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005
Igor Korolyov писал(а):
Цитата:
Hi, BladeRunner!
Строго говоря ПРАВКОЙ класса занимается не отладчик, а Form/Class Designer -
а они то и выгружают используемый класс из памяти. Кстати для PRG класса это
не обязательно - т.е. править его можно - другое дело что FXP старый
останется, а вот для перекомпиляции таки придётся выгрузить класс.


Жаль, конечно, что такой возможности не реализовали ... Из-за отсутствия такой возможности по роду деятельности приходиться испытывать массу неудобств - в приложении, многие объекты кэшируются - создаются при старте приложения или по мере необходимости и остаются не удаляются. Так вот отлаживать сие непросто ...

Вроде как в Делфи такая возможность есть - изменить класс на "лету", даже если есть его объекты в памяти ...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Mitchman

Сообщений: 9978
Откуда: Николаев
Дата регистрации: 24.05.2002
в Делфи конечно есть - потому как там исполняется не класс а его откомпилированная копия
в фоксе сделай себе копии - и редакти копии - а после подставь
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
BladeRunner

Сообщений: 50
Дата регистрации: 14.06.2004
Доброго времени суток!

2 bossyak

"Возможности у отладчика достаточно обширные ... " - каюсь, сразу не понял о чём речь ... я подумал, что это очередная навязшая на зубах попытка доказать что в Turbo C 3.0 отладчик был лучше чем FoxPro вообще решил было пресечь

Из нововведений - по-моему только то, что в отладчике видны константы объявленные #DEFINE (значения хинтами при MouseOver) ... даааа ... и кажется в 8 версии раньше не было в командной строке Watch выпадающего списка с свойствами, методами и субобъектами, как есть сейчас.

2 Igor Korolyov

Увы коллега, не редактируется он и в PRG-файле. Вот накидай такой файл:

PUBLIC m.goTest AS Object
m.goTest = CREATEOBJECT('Test')

DEFINE CLASS Test AS Custom
Something = 'Something'
ENDDEFINE

выполни его а потом хотя-бы нажми на пробел в любом месте - появится стандарное окно с запросом.

Так что я думаю остаётся единственный и абсолютно логичный путь - описанный Mitchman'ом ... хотяяя ... если честно даже не представлю когда бы потребовалось создавать массу объектов ... когда приходил к "критической" массе - я например просто создавал из нескольких Custom'ов, отвечающих за работу приложения - один ... ну ... тут конечно по ситуации ...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi bossyak!

Ты невнимательно читаешь ответы.
Более того я не думаю что в Delphi можно вот так просто поменять класс, и тут-же увидеть результат этого изменения. А поменять класс с целью увидеть результат после перезапуска/перекомпиляции можно и в фоксе.
Если тебя беспокоит не живой объект, а именно закэшированное определение класса - то CLEAR CLASS Имя_класса должно помочь - в крайнем случае CLEAR ALL...




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005
Igor Korolyov писал(а):
Цитата:
Hi bossyak!
Ты невнимательно читаешь ответы.


Отнюдь, очень даже внимательно
А вот судя по ответам. Или я вопрос не так точно задал.

Цитата:

Более того я не думаю что в Delphi можно вот так просто поменять класс, и тут-же увидеть результат этого изменения. А поменять класс с целью увидеть результат после перезапуска/перекомпиляции можно и в фоксе.


О том то и речь, что изменения внесенные в код, после перекомпиляции на "лету", становяться доступными для сущестующих объектов в памяти...

Цитата:

Если тебя беспокоит не живой объект, а именно закэшированное определение класса - то CLEAR CLASS Имя_класса должно помочь - в крайнем случае CLEAR ALL...


И что будет в запущенным приложением, после CLEAR ALL ?
Эти все варианты и так очевидны и мне известны.

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

А вот хотелось бы волшебства в девятом лисёнке ...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005
BladeRunner писал(а):
Цитата:
Доброго времени суток!
2 bossyak

"Возможности у отладчика достаточно обширные ... " - каюсь, сразу не понял о чём речь ... я подумал, что это очередная навязшая на зубах попытка доказать что в Turbo C 3.0 отладчик был лучше чем FoxPro вообще решил было пресечь

Из нововведений - по-моему только то, что в отладчике видны константы объявленные #DEFINE (значения хинтами при MouseOver) ... даааа ... и кажется в 8 версии раньше не было в командной строке Watch выпадающего списка с свойствами, методами и субобъектами, как есть сейчас.
В восьмом такой сервис есть - в Watch список свойств объекта
А вот с #DEFINE сложности, считает, что это переменная, определение которой найти бедняга не может

Цитата:

2 Igor Korolyov

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

Этот путь практически невозможно применить на практике. Ну, или затраты(усилия), возможность скопировать не то и не туда, будут соизмеримы с выходом из приложения и корректировки стандарным способом.

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

И вот выяняется, что метод в документе, удостоверяющем личность, не так как требуется формирует описывающую его строку для печати. А исправить сразу возможости нет, в конечном итоге приходиться выходить из приложения, править, опять запускаться, доходить до требуемого места печати, что тоже может быть довольно "глубоко" ... Одним словом - борьба.
Иногда, для "тяжелых" случаев приходиться писать специальные классы для отлаживания режимов. А ведь в большистве случаев можно было б обойтись корректировкой по месту.
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
Может я не точно рассписал свою проблему - есть довольно сложное приложение, большая часть функционала реализована при помощи мастеров, тоже довольно непростых, с пяток вкладок ... Частенько бывает ситуация - доходишь до очередной вкладки мастера, и видишь, что немного требуется подправить код метода класса, объект которого есть в памяти ...
Ну а дальше большинство знает, что происходит..
Наверно, я сильно отстал от новейших веяний. Мне как-то и в голову не приходило менять код в процессе его исполнения. Неужели есть такие языки программирования? А я тут по старнике, понимаешь
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
dushes

Сообщений: 243
Откуда: Россия,Кострома
Дата регистрации: 13.03.2002
ну, обширными возможностями это никак не назовешь...например, очень не хватает средств для просмотра коллекций, в текушем проекте на нынешнем месте работы есть классы, использующие коллекции коллекций...и очень часто приходится обращаться к отладчику для того чтобы посмотреть значения элементов таких коллекций..вот тут-то и начинается бред, значения даже простой коллекции я не вижу, приходится обращаться к определенному Item, в коде объявлять какую-то временную переменную, в которую и загонять значение Item, и уже его в отладчике смотреть...имхо, отладчик сильно не изменился по сравнению даже с версией 3.0

Что касается редактора кода...тоже оставляет желать лучшего, нет компиляции класса на ходу, что очень не хватает, особенно когда пересаживаешься из студии vs2003 в фокс, скажем, в prg определение класса, использую local переменную типа "данного класса", в коде редактор не видит ни свойств, ни методов данного класса - вообщем, бяда ...




------------------
пиво я не пью...я его ем...
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
BladeRunner

Сообщений: 50
Дата регистрации: 14.06.2004
2 bossyak

Теперь понятно. Что же коллега, могу лишь посочувствовать. В своё время я реализовал одну задачку примерно таким же манером. Я создавал классы Record со своими методами (по большей части универсальными), формы были экземпляры различных классов и т.д. С точки зрения ООП всё было круто и перцово, как говорит нынешняя молодёжь. Но однажды я понял, что это Н Е Н У Ж Н О … это СУБД, а не C# (хотя тогда его ещё не было) … здесь другие цели, задачи и способы решения - я плюнул на всё и переписал потихоньку заново. Нет, я не отказываюсь от передачи данных путём организации объектов. Но в них теперь не пишу никакого или почти никакого кода, и даже не потому что сложно отлаживать, а потому что для этого использую формы - так проще, быстрее и эффективнее.

2 Владимир Максимов

Mega LOL!
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Владимир Максимов

Сообщений: 14095
Откуда: Москва
Дата регистрации: 02.09.2000
Цитата:
значения даже простой коллекции я не вижу, приходится обращаться к определенному Item, в коде объявлять какую-то временную переменную, в которую и загонять значение Item, и уже его в отладчике смотреть...
Вообще-то, в отладчике есть такое окно "Watch window". Достаточно там ввести интересующее выражение и получите его значение, если это возможно. Никаких временных переменных в самом коде программы.
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi BladeRunner!

В другой сессии фокса Или вообще не фоксовым редактором.

А вот так поменять чтобы оно откомпилировалось и как-то хитро прицепилось к
уже существующим объектам - такого точно нету, и я так подозреваю что и не
будет никогда... И из Delphi при переходе на NET это наверняка выкинут если
оно там именно так и было.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
bossyak
Автор

Сообщений: 6
Откуда: Гандурас
Дата регистрации: 21.03.2005
Владимир Максимов писал(а):
Цитата:

Наверно, я сильно отстал от новейших веяний. Мне как-то и в голову не приходило менять код в процессе его исполнения. Неужели есть такие языки программирования? А я тут по старнике, понимаешь

Я не очень силен в тонкостях реализации интерпретаторов, но мне кажется особых проблем для реализации такой возможности не должно быть. Только я не про "менять код в процессе его исполнения", а про изменения кода существующих объекто, который естественно в данный момент не выполняется. Что-то подобное происходит сейчас делается с простыми файлаи *.prg. Выполняется ж проверка момента сохранения файла и момента генерации исполняемого кода, файла *.fxp ... На мой взгляд немного усложниться процесс обработки вызовов функций, но если это реализовать для специального отладочного режима,т.е. добавить опцию для включения/отключения режима, что бы рабочий код не терял производительности, когда все отлаженно.
Ratings: 0 negative/0 positive
Re: Возможности отладчика VFP9
dushes

Сообщений: 243
Откуда: Россия,Кострома
Дата регистрации: 13.03.2002
об этом и речь...чтобы посмотреть все члены коллекции, нужно прописывать в данном окне обращение к конкретному item/




------------------
пиво я не пью...я его ем...
Ratings: 0 negative/0 positive


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

On-line: 18 Владимир Максимов  (Гостей: 17)

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