Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Содержимое указателя 
V
    Опции темы
lnix
Дата 10.4.2013, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



Всем доброго времени суток!
Хотел спросить, как просмотреть содержимое памяти по адресу в указателе?
Есть стандартные средства?
Заранее благодарен.
PM MAIL   Вверх
kami
Дата 10.4.2013, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(lnix @  10.4.2013,  11:10 Найти цитируемый пост)
как просмотреть содержимое памяти по адресу

Что подразумевается под "посмотреть"?
PM MAIL WWW   Вверх
lnix
Дата 10.4.2013, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



Цитата(kami @ 10.4.2013,  12:05)
Цитата(lnix @  10.4.2013,  11:10 Найти цитируемый пост)
как просмотреть содержимое памяти по адресу

Что подразумевается под "посмотреть"?

по адресу указателя находится сложная структура данных нужно посмотреть значения данных расположенных по адресу в указателе.
PM MAIL   Вверх
kami
Дата 10.4.2013, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(lnix @  10.4.2013,  12:53 Найти цитируемый пост)
по адресу указателя находится сложная структура данных 

Если есть описание структуры:
Код

type
  TStruct = record
    Foo: integer;
    Foo1: Double
    ...
  end;
  PStruct = ^TStruct;

var
  myStruct: PStruct;
begin
  myStruct = myPointer;
  ShowMessage(IntToStr(myStruct.Foo));


Если нет и нужно посмотреть бинарные значения:
Код

var
  aStr: AnsiString;
begin
  SetLength(aStr, 100);
  Move(myPointer^, aStr[1], 100); 
  ShowMessage(aStr); // или - преобразовать в hex-вид, а потом выводить в строку


Вроде, как-то так (Delphi не под рукой smile  ).

Это сообщение отредактировал(а) kami - 10.4.2013, 13:20
PM MAIL WWW   Вверх
lnix
Дата 10.4.2013, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 5.10.2009

Репутация: нет
Всего: нет



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


Это сообщение отредактировал(а) lnix - 10.4.2013, 13:49
PM MAIL   Вверх
Чучмек
Дата 10.4.2013, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



В d7  наводишь на разыменованный указатель.
Или наводишь,нажимаешь правую кнопку, выбираешь   Debug->Evaluate/Modify->Inspect

Добавлено через 5 минут и 19 секунд
В новых версиях delphi наводишь на указатель, в "подсказке" наводишь на крестик возле имени переменной.


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Beltar
Дата 10.4.2013, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



Если указатель типизированный, то именно структуру на которую он указывает и покажет, если написать в окне watch p^, ну или навести курсор на "крышу" в исходном тексте.

Код

myStruct = myPointer;


Это что? Где выделение памяти под структуру через new? Кстати, может лучше класс использовать и забыть о прямой работе с указателями?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Чучмек
Дата 10.4.2013, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



Цитата(Чучмек @  10.4.2013,  14:03 Найти цитируемый пост)
Или наводишь,нажимаешь правую кнопку, выбираешь   Debug->Evaluate/Modify->Inspect

Или сразу Debug->Inspect

Добавлено через 1 минуту и 52 секунды
Цитата(Beltar @  10.4.2013,  14:09 Найти цитируемый пост)
Это что? Где выделение памяти под структуру через new? 


Цитата(kami @  10.4.2013,  13:19 Найти цитируемый пост)
Вроде, как-то так (Delphi не под рукой smile  ).


Добавлено через 7 минут и 1 секунду
Beltarkami имел в виду, что указатель myPointer (тип Pointer) уже указывает на конкретную область памяти


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
kami
Дата 10.4.2013, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(Чучмек @  10.4.2013,  14:11 Найти цитируемый пост)
Beltar, kami имел в виду, что указатель myPointer (тип Pointer) уже указывает на конкретную область памяти

+1 smile 

Цитата(lnix @  10.4.2013,  13:48 Найти цитируемый пост)
может есть какие готовые средства в отладчике, типа, навел мышку на переменную а она вывела содержимое по адресу в указателе,

Вот сразу дал бы полный ответ на вопрос "Что подразумевается под "посмотреть"?" - и получил бы нужный ответ, без уходов в сторону.

PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1149 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.