purebasic.info

PureBasic forum
Текущее время: Пн июн 18, 2018 1:20 am

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Global label
СообщениеДобавлено: Пн ноя 21, 2016 8:58 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб июл 18, 2009 8:25 am
Сообщений: 810
Откуда: Нерезиновая
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Только сейчас заметил, что в новых версиях пурика процедурные метки стали локальными...
Глобальную сейчас заколхозить можно как-то?

Код:
1
2
3
4
5
Procedure x()
mark:
EndProcedure
 
ShowMemoryViewer(?mark, 2)



Можно конечно через ассемблерные метки и поиск байтов от начала процедуры запилить, но такие велосипеды лишь на крайний случай...


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пн ноя 21, 2016 9:18 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11178
Благодарил (а): 4 раз.
Поблагодарили: 414 раз.
Зачем нужна метка доступная вне процедуры?

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пн ноя 21, 2016 9:22 pm 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб июл 18, 2009 8:25 am
Сообщений: 810
Откуда: Нерезиновая
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Чтобы переписать часть кода процедуры в рантайме, не перезаписывая ее целиком.
Ну или посчитать размер кода например.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Вт ноя 22, 2016 5:56 am 
Не в сети
профессор
Аватар пользователя

Зарегистрирован: Сб июл 18, 2009 8:25 am
Сообщений: 810
Откуда: Нерезиновая
Благодарил (а): 21 раз.
Поблагодарили: 4 раз.
Пункты репутации: 0
Остановился на том, что можно просто при отладке дебагнуть [маркер - адрес процедуры] и потом как смещение использовать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Вт ноя 22, 2016 12:15 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 570
Благодарил (а): 2 раз.
Поблагодарили: 32 раз.
Пункты репутации: 9
А примеры то будут? :roll:


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пт ноя 25, 2016 1:12 am 
Не в сети
профессор

Зарегистрирован: Вс июн 10, 2012 8:18 am
Сообщений: 1294
Благодарил (а): 60 раз.
Поблагодарили: 49 раз.
Пункты репутации: 14
Да, не удобно стало. Приходится ассемблерные метки юзать.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пт ноя 25, 2016 6:55 am 
Не в сети
док

Зарегистрирован: Сб окт 31, 2009 7:44 am
Сообщений: 154
Благодарил (а): 85 раз.
Поблагодарили: 3 раз.
Пункты репутации: 0
MrF
на какой версии PB сие работало? Испробовал все с 5.0 до 5.31, на w7_x64 не работает. Может, дело в разрядности/оси?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пт ноя 25, 2016 12:11 pm 
Не в сети
МОДЕРАТОР
Аватар пользователя

Зарегистрирован: Пн апр 09, 2007 4:53 pm
Сообщений: 11178
Благодарил (а): 4 раз.
Поблагодарили: 414 раз.
Локальные метки появились в 5.10, т. е. в 5.0 должно работать.

_________________
Компьютер позволяет решать все те проблемы, которые до его изобретения не существовали. :) :)


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Global label
СообщениеДобавлено: Пт ноя 25, 2016 11:48 pm 
Не в сети
профессор

Зарегистрирован: Пн июл 22, 2013 11:00 pm
Сообщений: 570
Благодарил (а): 2 раз.
Поблагодарили: 32 раз.
Пункты репутации: 9
Что должно быть то?(просто я память своими процедурами смотрю а не ShowMemoryViewer)
может так? :roll:
Код:
1
2
3
4
5
6
7
8
9
 
Procedure x()
  mark:
 !xor eax,eax
EndProcedure
Global t.i=@x()
 
ShowMemoryViewer(@mark,100)
 



Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group (блог о phpBB)
Сборка создана CMSart Studio
Русская поддержка phpBB