Я хочу, как говорится в заголовке, распечатать содержимое стека в моем Программа C.
Вот шаги, которые я предпринял:
Я создал простой файл сборки (helper.s), который включал функцию для возврата адреса моего регистра ebp и функцию для возврата адреса моего регистра esp
.globl get_esp
get_esp:
movl% esp,% eax
Ret
# get_ebp определяется аналогично и включается в раздел .globl
get_esp ()
и get_ebp ()
из моей программы на C ( fpC = get_esp ();
где fpC - это целое число) fprintf (stderr, "% x", fcP);
) fprintf (sderr, "% d", * fcP);
и fprintf (sderr, "% x", * ((int *) fcP));
, среди другие методы). Моя программа обнаруживает ошибку сегментации во время выполнения, когда эта строка обрабатывается. Что я делаю не так?
РЕДАКТИРОВАТЬ: Это должно быть выполнено путем вызова этих функций сборки для получения указателей стека. EDIT2: это домашнее задание.