Как снять дамп памяти?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RealAlex
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.06.2004 (Вт) 16:08

Как снять дамп памяти?

Сообщение RealAlex » 25.06.2004 (Пт) 20:58

Госпада Мега Гуру, как сделать копию в файл проги находящейся в оперативке? Буду весьма признателен Вашему повторному спасению моей шкуры!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 26.06.2004 (Сб) 16:31

Прям во как...
НУ если у тебя есть права на чтение памяти процесса, если у тебя есть HINSTANCE, если ты знаешь размер процесса, то ставь на него байтовый SAFEARRAY и сохраняй одной командой в файл...
А как поставить SAFEARRAY - это на www.vbstreets.ru смотри...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

RealAlex
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 22.06.2004 (Вт) 16:08

Сообщение RealAlex » 26.06.2004 (Сб) 18:39

Я, конечно, посмотрел в «SAFEARRAY Tricks», но такое ощущение, что там дискуссия ведётся с середины интересуещего меня вопроса. Я ж, потому, и задал вопрос в раздел «Барсик для начинающих» , что с обращением к оперативной памяти я столкнулся совсем недавно. Лучше, даже, сказать, что не столкнулся, а сильно ударился лбом – чуть остатки мозга через уши не вылетели… Помнится, в годы моего пИсанья под себя, было простенькое обращение к оперативке:
10 For z=23756 to 65535
20 Print z , PEEK z
30 Next z
И сия прога выдавала содержимое всей памяти!!!
Неужели на VB нет простенького оператора, который считывал бы по указанному адресу находящийся там байт?
А «SAFEARRAY Tricks», конечно, хорошо, но не приемлемо для начинающих.
ПА-А-АМА-А-АЖИ-И-ИТЕ!!!!!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.06.2004 (Вс) 5:23

Ну поюзай тогда просто GetMem4.

Код: Выделить всё
dim i as long, b as long

for i=1000 to 2000 step 4
  getmem4 i, varptr(b)
  me.? b
next


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


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: Yandex-бот и гости: 8

    TopList  
cron