Я хотел спросить, могу ли я использовать функцию mtrace(), чтобы моя программа регистрировала физические адреса распределений памяти. Кроме того, если я использую mtrace() и могу показать адреса, используемые для выделения, это покажет мне адреса в физической или виртуальной памяти?Журнал распределения физической памяти Mtrace
Заранее спасибо.
Edit: Итак, я запускаю следующий код:
#include <stdlib.h>
#include <mcheck.h>
int main(void) {
mtrace(); /* Starts the recording of memory allocations and releases */
int* a = NULL;
a = malloc(sizeof(int)); /* allocate memory and assign it to the pointer */
if (a == NULL) {
return 1; /* error */
}
free(a); /* we free the memory we allocated so we don't have leaks */
muntrace();
return 0; /* exit */
}
Это дает мне следующий вывод:
=Start
@ ./a.out:[0x80484a6] + 0x9738378 0x4
@ ./a.out:[0x80484c4] + 0x9738378
= End
ли адреса, показанный в виртуальной памяти или в физической памяти?