Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
shavka
131 / 14 / 2
Регистрация: 27.11.2013
Сообщений: 385
1

Что такое стек в VBA и как его смотреть?

08.08.2017, 11:49. Просмотров 1648. Ответов 6
Метки нет (Все метки)

Что такое стек в VBA и как его смотреть?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.08.2017, 11:49
Ответы с готовыми решениями:

Что такое удаленные элементы и как сортировать стек?
Создать динамические структуры – основной стек, содержащий максимально 25 вещественных элементов и...

Что такое указатель на фаил в делфи, как его получить и с чем его готовить
У меня вопрос я получаю имя файла вот тут procedure TForm1.Button5Click(Sender: TObject); var...

Что такое стек?
Объясните как они хранятся в памяти и что такое стек. Насколько я понял, стек это как стопка книг....

Что такое стек в МК?
Здраствуйте!!! Кто может обычным простым языком обьяснить что такое стэк,на АВР? и как его...

6
dzug
688 / 228 / 18
Регистрация: 17.01.2011
Сообщений: 575
Записей в блоге: 1
08.08.2017, 16:56 2
Пришли Вы в столовую а там очередь.
Заняли очередь и ждёте - это будет очередь. Т.е. Последним пришёл - последним уйдёшь.
А когда подошли брать поднос для еды - это стек, т.к. первый поднос помыли и положили вниз стопки, второй поднос помыли и положили сверху и т.д. Т.е. последним пришёл - первым уйдёшь или по другому - первым пришёл - последним уйдёшь.
1
Вложения
Тип файла: rar Очередь и стек.rar (115.4 Кб, 9 просмотров)
Dragokas
Эксперт WindowsАвтор FAQ
17171 / 7224 / 866
Регистрация: 25.12.2011
Сообщений: 11,016
Записей в блоге: 16
08.08.2017, 18:35 3
shavka, если вы о том стеке, что в редакторе IDE -> View -> Call Stack, то это стек вызова функций.
Отображает последовательность вызова функций, и в какой функции вы в данный момент находитесь (точка останова).
2
shavka
131 / 14 / 2
Регистрация: 27.11.2013
Сообщений: 385
08.08.2017, 20:50  [ТС] 4
Цитата Сообщение от dzug Посмотреть сообщение
Пришли Вы в столовую а там очередь.
вы в столовой чтоли программируете?! фигасе.....

Добавлено через 4 минуты
Цитата Сообщение от Dragokas Посмотреть сообщение
стек вызова функций.
мне нужен тот, в котором контролируется память. Тут тема была по контролю утечек памяти. У меня такая же проблема. Только причина другая - файл импортирует много данных из внешних источников.
0
Dragokas
Эксперт WindowsАвтор FAQ
17171 / 7224 / 866
Регистрация: 25.12.2011
Сообщений: 11,016
Записей в блоге: 16
08.08.2017, 21:49 5
Лучший ответ Сообщение было отмечено shavka как решение

Решение

shavka, утечка памяти и переполнение стека - разные понятия. ОЗУ и стек физически отделены друг от друга. Стек хранится в ЦП. Почитайте: https://tproger.ru/translations/programming-concepts-stack-and-heap/
Цитата Сообщение от shavka Посмотреть сообщение
Тут тема была по контролю утечек памяти.
Если читали ту тему, в то в ней проскакивала хорошая фраза, что в VBA чаще всего проблемы связаны совсем с другим - переполнением памяти. То есть нужно бороться с чрезмерной прожорливостью вашего проекта и документа/книги.

Почитайте тему: Чистка книг Excel

Ну и отвечая прямо ваш вопрос, как посмотреть стек. - Через отладчик. Например, через WinDBG, вот так. Но для VBA там ничего интересного не увидите, кроме указателей на данные.
Сами данные (значения) переменных хранятся в куче (ОЗУ).
Значения переменных для каждой из функций вверх по стеку вызова можно посмотреть, нажав кнопку "..." (троеточие) в окне "Locals".
1
Миниатюры
Что такое стек в VBA и как его смотреть?  
_shark
178 / 177 / 30
Регистрация: 11.10.2016
Сообщений: 566
09.08.2017, 10:10 6
Цитата Сообщение от shavka Посмотреть сообщение
вы в столовой чтоли программируете?! фигасе.....
человек просто доходчиво ответил на ваш вопрос "что такое стек"
2
Dragokas
Эксперт WindowsАвтор FAQ
17171 / 7224 / 866
Регистрация: 25.12.2011
Сообщений: 11,016
Записей в блоге: 16
09.08.2017, 14:57 7
Лучший ответ Сообщение было отмечено shavka как решение

Решение

Кстати, если не разобрались, и на самом деле хотели спросить о просмотре памяти процесса, то это можно сделать, например, через редактор WinHex. => Tools => Open Memory => в списке найти Excel / msword (обычно снизу списка) => Primary memory. Дальше, если нужно найти данные (значение) конкретной переменной, жмёте Alt + G, вводите Hex-значение адреса переменной. Его можно получить из-под VBA IDE так:

- для типа String:
Visual Basic
1
debug.? hex(strptr(sVar))
- для объектной переменной:
Visual Basic
1
debug.? hex(objptr(oVar))
- для остальных типов (кроме Variant):
Visual Basic
1
debug.? hex(varptr(lVar))
- для массива - берёте адрес первого члена для соответствующего типа данных.
3
09.08.2017, 14:57
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.08.2017, 14:57

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Что такое стек?
Нигде не нашёл понятного определения некого стека. Что такое стек, как с ним работать и т.д.?

Что такое стек?
вот задание: VI Динамические структуры 1. Дано неотрицательное число N и набор из N чисел. Создать...

Что такое куча,стек,очередь?
Доброго Вам времени суток форумчане! Краткость сестра таланта, по этому сразу к делу. Объясните...

Что такое svchost и как его удалить?
Ребят, что за фигня? Как удалить?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.