Ссылается ли указатель на компонент?

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Re: Ссылается ли указатель на компонент?

Сообщение скалогрыз » 25.08.2016 03:16:30

jakyro писал(а):Но я спрашивал, как узнать, что записано в любом заданном пользователем указателе... Без организации каких-то там менеджеров, списков и т.д.
Средствами lazarus, pascal прочитать то, что на что ссылается указатель, если это возможно, иначе сообщить о невозможности на что ссылается указатель.

И не нужно тоже самое писать, что писали 6 страниц подряд. Я уже понял, что никто из вас этого не может и вы советуете мне другие способы


Просто мы все (кто тут пишет на паскале, а то и на С-ях) приняли как догму, что распознать тип указателя только по его адресу невозможно.
По-этому, если требуется распознать тип указателя по адресу, всё что можем предложить это хранить дополнительную информацию о типе этого указателя (об адресе в памяти) где-то ещё.

Ты эту догму не разделяешь. Имеешь полное право - плюрализм, свобода мнений. В связи с этим, у меня есть чуть-чуть вопросов:
* есть ли что-нибудь (теоритически), что могло бы тебя убедить в этой догме?

* сколько времени ты готов потратить на поиск надёжного решения, без хранения дополнительной информации, которую мы именуем "хаком"? Какой предел времени и сил, после которого ты скажешь что-то из следующих вариантов:
а) Хак работает в N-процентов из 100. Для меня это достаточно и я опубликую этот процент N в списке особенностей к своей библиотеке. (N-высчитывается через тест zub-a #2)
б) Придёться использовать решение с дополнительной информацией об указателе.
в) Паскаль не удовлетворяет моим техническим запросам, надо выбрать другой инструментарий

* Т.к. тут все религиозные догматики, и не верят в проверку типа указателя только по адресу, спрашивал ли ты, в других группах/форумах/сообществах? Если да, можешь ли поделиться ссылками?! (интересно узнать мнение других людей)

ЗЫ. Ты не прокоментировал мой ответ насчёт производительности. Считаю, что ты заранее со мной согласен. Но я бы хотел добавить, что хранение списка указателей делает твой скрипт более безопасным.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Ссылается ли указатель на компонент?

Сообщение jakyro » 25.08.2016 06:39:22

Про производительность я писал. И про всё остальное писал. У вас тут информационный вакуум, вы все одно и тоже спрашиваете, как клоны, убедили друг друга в своей же теории, мыслите одинаково и каждому приходится по 10 раз отвечать.
Опять ты задал кучу бестолковых вопросов, на которые мне нужно ответить.

И я не называл никого новичком, это он сам написал.
Лекс Айрин писал(а):Это видно даже такому новичку как я.

А zub, считает что я новичок, но я себя лучше знаю, следовательно мнение этого пользователя просто аннулируется, так как он не может отличить кто новичок в программировании, а кто нет.
Так же как и мнение скалагрыза, и прочих догматиков (верно подметил скалогрыз), так как вы не смогли решить поставленную задачу, не распыляясь на свои догмы.
Ваше мнение - пустой звон. Ну вы никто в моих глазах. Люди одного языка, паскаль или С, всё что смог перечислить скалогрыз.

Сидите тут с 2005, 2008-го года, имеете по ~1000 сообщений за ~10 лет и выдаёте себя за каких-то богов программирования. Да вы же просто старые маразматики. Вам чуждо другое мнение.
Никчемное количество сообщений, у вас общение тут не развито, вы ставите своё мнение выше других и на этом тема заканчивается.
Я администратор одного из форумов, того самого скриптового языка, за 3 года и то умудрился ответить 5 тысяч раз.
Потому что я общаюсь с людьми, вникаю в задачу, цель, помогаю решить любым способом, а не заканчиваю тему на ответе "никак".

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

Если бы я не начал дальше рассуждать, доказывать обратное, то эта тема просто там бы и закончилась, на втором сообщении, что это "не возможно".
Я даже высшего мнения стал о bormant, чем о любом из вас, так как он начал искать способы решения задачи. Вы же, живёте своими догмами.

И можете ничего больше не писать, мне ваше мнение не важно и сюда заходить просто нет смысла, чтобы очередной раз вас чему-то учить, доказывать, спорить.
А проект я реализую, можете не сомневаться (хотя кому я доказываю...). Ведь старый движок успешно работает, что стоит найти альтернативу и для нового.
СТАРЫЙ ДВИЖОК отлично работает с 2004, а вы мне тут пытаетесь доказать, что это не возможно. Ну это же тупизм...

Ну и конечно вы с моим мнением не согласитесь, вы же догматики-маразматики. Ну и ладно, уж лучше я с вами соглашусь, чем бесконечно спорить.
Аватара пользователя
jakyro
новенький
 
Сообщения: 38
Зарегистрирован: 22.08.2016 08:04:21

Re: Ссылается ли указатель на компонент?

Сообщение скалогрыз » 25.08.2016 06:57:41

jakyro писал(а):Я администратор одного из форумов, того самого скриптового языка, за 3 года и то умудрился ответить 5 тысяч раз.
Потому что я общаюсь с людьми, вникаю в задачу, цель, помогаю решить любым способом

ссылку-то дашь на форум? лично я обещаю не флудить :)

Добавлено спустя 49 секунд:
jakyro писал(а): Ведь старый движок успешно работает, что стоит найти альтернативу и для нового.
СТАРЫЙ ДВИЖОК отлично работает с 2004, а вы мне тут пытаетесь доказать, что это не возможно. Ну это же тупизм.

дай нам с ним поиграться! вдруг мы его сломаем?! ну пожааааалуйста!!!

Добавлено спустя 1 минуту 45 секунд:
jakyro писал(а):Опять ты задал кучу бестолковых вопросов, на которые мне нужно ответить.

но ты ни на один не ответил... но это не важно! ссылку бы на форум и скрипт поиграться! можно даже в бинарной форме!

Добавлено спустя 6 минут 43 секунды:
jakyro писал(а):Ну и ладно, уж лучше я с вами соглашусь, чем бесконечно спорить.

т.е. сделаешь список указателей?! :roll:
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Ссылается ли указатель на компонент?

Сообщение Лекс Айрин » 25.08.2016 09:23:55

jakyro писал(а):А zub, считает что я новичок, но я себя лучше знаю, следовательно мнение этого пользователя просто аннулируется, так как он не может отличить кто новичок в программировании, а кто нет.

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

jakyro писал(а):СТАРЫЙ ДВИЖОК отлично работает с 2004, а вы мне тут пытаетесь доказать, что это не возможно. Ну это же тупизм...

Если скажут не прыгать с моста, то тоже не будете выполнять эту догму? Чтобы уж успокоить ВАС могу уверить, что это не догма это аксиома. И что приходится переписывать прогу из-за использования хаков тоже не раз проверено. Причем, даже если используешь их невольно. И мы не говорим, что это невозможно... а то, что это ненадежно.

Для примера, можно использовать пример фирмы Norton -- работать все работает. Код -- куча хаков... но иногда можно потерять половину системы (или просто уйти в ребут) просто из-за сбоя в хаке.

Добавлено спустя 16 минут 24 секунды:
jakyro писал(а):Вот есть сантехник (скрипт, работающий с SDK), он пользуется определёнными инструментами (SDK) и если какой-то инструмент не работает, это не значит что нужно убивать сантехника.


Если сантехник на сверхопасном объекте пользуется нерабочим инструментом, то его надо вообще-то как минимум уволить... а то и посадить.

jakyro писал(а):Да? А где хранится состояние процессора? В памяти!


О майн год... состояние процессора скидывается перед запуском исключения отладки в стек. И, если уж на то пошло, это не совсем то состояние, какое было в самом процессоре.

jakyro писал(а): а то наверно не в курсе, что весь компьютера основан на работе с той или иной памятью...


Да?.. работа процессора это преобразование данных по определенным правилам... тебе может показаться странным, но наличие для этого памяти лишь стандартный аппаратный хак и без нее можно обойтись (и даже обходились).

zub писал(а):Новичек ты, не тут, а вообще в програмировании. Понятно с первого поста))


А я и не скрываю.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ссылается ли указатель на компонент?

Сообщение MysticCoder » 25.08.2016 11:19:42

Я как то организовывал костыль, который наверняка уже здесь предлагали, и он даже работал. Примерно такой: определяем выделена ли память(VirtualQuery, IsBadPtr, IsCodePtr), далее сравниваем что то типа If TObject(SomePointer) is TForm или if PClass(SomePointer)^ = TForm, облагаем try exceptом и радуемся.
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Re: Ссылается ли указатель на компонент?

Сообщение Лекс Айрин » 25.08.2016 11:23:22

MysticCoder, а издержки?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ссылается ли указатель на компонент?

Сообщение MysticCoder » 25.08.2016 11:27:41

Какие издержки?
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Re: Ссылается ли указатель на компонент?

Сообщение Лекс Айрин » 25.08.2016 11:34:20

MysticCoder, вызов исключения очень тяжелое занятие... реально быстрее пробежаться по списку указателей. Это в досе было полегче, когда не надо было сохранять контекст задачи.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ссылается ли указатель на компонент?

Сообщение MysticCoder » 25.08.2016 11:42:46

Это уже проблема молодого маразматика. К тому же проверками на валидность памяти перед этим значительно уменьшается вероятность выброса исключения
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Re: Ссылается ли указатель на компонент?

Сообщение Лекс Айрин » 25.08.2016 11:55:16

MysticCoder, возможно... но поддерживать данную проблему не вижу смысла...

К тому же, есть проблема достоверности переменной. Есть шанс заработать валидный, якобы, указатель на уже удаленную переменную.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Ссылается ли указатель на компонент?

Сообщение stanilar » 27.08.2016 00:27:46

Ну ладно Вам... Набросились, понимаешь...

Между тем дельфовый FastMM может при закрытии программы отрапортовать о том, какие классы по какому адресу не были удалены(как говорится, все уже придумано до нас). И мне уже известен человек, который притянет такую проверку к FPC :-)

Таки по теме, если забить на "проблему" потерянных объектов, то как еще планируется использовать супер-пупер-магическую функцию isValidObjInst (или таки как ее решили обозвать)?

jakyro писал(а):
Лекс Айрин писал(а): писал(а):Это плохой язык. Если пользователь (программист) ошибся, то прога должна клеить ласты. И никак иначе. В противном случае есть нехилый шанс, что ласты склеит система. Указатели очень опасный механизм.


Нет, нет. Это не строго типизированный скриптовой язык, который позволяет отловить не валидный указатель и сообщить об этом, на любой стадии проекта, не уничтожая при этом процесс, дабы не потерять данные в результате работы с программой.


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

Кстати, по моим наблюдениям, большинство скриптовых движков использую контроль за жизнью объектов по ссылке на них.
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: Ссылается ли указатель на компонент?

Сообщение zub » 27.08.2016 00:36:27

>>Между тем дельфовый FastMM может при закрытии программы отрапортовать о том, какие классы по какому адресу не были удалены
А в фпц это давно есть
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Re: Ссылается ли указатель на компонент?

Сообщение скалогрыз » 27.08.2016 00:38:31

stanilar писал(а):И мне уже известен человек, который притянет такую проверку к FPC

идею менеджера памяти jakyro отверг ещё не первой странице (хотя он на иностранных же сайтах и читал советы по его использованию)
stanilar писал(а):Дилемма проста:
Либо программа работает всегда, и в результате накопленных ошибок плывут данные.
Либо программа падает при любой ошибке, заставляя разработчика переделать функционал а пользователя - не создавать ситуации, приводящие к падению программы - актуальность данных наиболее максимальна.

Может быть это новый вид программирования? Квантовое! Оно не имеет отношения к квантовым компьютерам, но работает на принципе вероятности. Вроде такого, что в 85% случаев программа выполняется успешно.
скалогрыз
долгожитель
 
Сообщения: 1803
Зарегистрирован: 03.09.2008 02:36:48

Re: Ссылается ли указатель на компонент?

Сообщение stanilar » 27.08.2016 01:36:34

скалогрыз писал(а):в 85% случаев программа выполняется успешно


Почему 85? Предполагается что

jakyro писал(а):который позволяет отловить не валидный указатель и сообщить об этом, на любой стадии проекта, не уничтожая при этом процесс
stanilar
постоялец
 
Сообщения: 289
Зарегистрирован: 09.03.2010 19:09:02

Re: Ссылается ли указатель на компонент?

Сообщение zub » 27.08.2016 01:49:22

"Указатель" в терминах этого топика и "надежность" и "валидация" - вещи несовместимые, тут непоможет даже супер-пупер менеджер памяти
Ответственность за "напрямую" выделеную память лежит на програмисте. Хочется спмхнуть эту ответственность - добро пожаловать в манагед среды
zub
долгожитель
 
Сообщения: 2887
Зарегистрирован: 14.11.2005 23:51:26

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 244

Рейтинг@Mail.ru