Как узнать адрес в оперативной памяти с которого начинается процесс?
Хочу сделать программу которая делает дамп памяти процесса. Узнать сколько всего занимает память легко.
Хочу сделать программу которая делает дамп памяти процесса. Узнать сколько всего занимает память легко.
Даже не знаю. Однако, если пользоваться понятием дескриптора (в С\С++), то этот самый дескриптор и должен быть не чем иным, как УКАЗАТЕЛЕМ НА ПЕРВЫЙ БАЙТ ПАМЯТИ, ЗАНИМАЕМОЙ ЭКЗЕМПЛЯРОМ КЛАССА. Вспомни одну из идей языка: ПОЧЕМУ ИМЯ МАССИВА ПОДОБНО УКАЗАТЕЛЮ НА ЕГО ПЕРВЫЙ (вернее, нулевой! ) ЭЛЕМЕНТ. Дескриптор - по сути своей УКАЗАТЕЛЬ. Любой объект размещаемый в ОП - последовательность байтов. Откуда можно предположить, что Дескриптор_Процесса = Указатель_На_Начальный_Байт_Процесса_Размещённого_в_ОП.
Это не точно, предположение. Но попробуй покопать в этом направлении, должно быть недалеко от истины.. . Успехов тебе. Если нароешь чего - поделись. Я прикладник, мне системные вопросы не особо близки.. .
PS: забыл, тебе ещё нужно будет вычислить смещение (длину экземпляра процесса) . Тут ничего кроме RTTI в голов не лезет.. . И ещё: для взаимодействия процессов может быть организован доступ нескольких процессов к одной и той же области памяти. Тоже задача: её как то в дампе выделять следует? а указывать, какими процессами ещё исползуется - надо?