Я попробовал, добавив это внутри функции битый системного вызова:Как найти текущее местоположение программы перерыв
void *addr = sbrk(0);
printk("current-add-is-%p-\n", addr);
Но произошла ошибка во время компиляции ядра, что неявная декларация функции sbrk. И я не мог найти, где sbrk определен! Все, что мне нужно, чтобы измерить, что всякий раз, когда какой-либо пользовательский процесс пытается расширить свой адрес прерывания программы, я бы знал его текущий адрес прерывания программы, чтобы я мог измерять, сколько запросов на память запрашивает.
спасибо.
Не могли бы вы рассказать, что вы подразумеваете под «read brk's sources», поместив это в метод вызова системы brk. Я понимаю, что нет системного вызова sbrk. Но man-страница sbrk говорит, что sbrk (0) даст текущий адрес прерывания программы, поэтому просто попробовал sbrk (0) –
@ArjunBora: на страницах человека описываются функции, доступные для ** пользовательского пространства ** программ. * Kernel space * code работает с * различными * функциями. – Tsyvarev
@ Цыварев Хорошо, так есть ли способ найти текущий адрес прерывания программы из пространства ядра? эквивалент sbrk (0) Спасибо. –