Заполните весь доступный стек с конкретным значением [Duplicate

StackOverflow https://stackoverflow.com/questions/20353628

  •  25-08-2022
  •  | 
  •  

Вопрос

Мне нужно заполнить все доступное место в стеке с определенным символом для профилирования.

Прежде всего, есть ли безопасный способ сделать это на Android (возможно, некоторые функции, специфические для компилятора) в C ++? Если нет, могу я предположить, что адрес первой переменной, объявленной в функции, является «началом» стека «неиспользованного»? Если нет, есть ли способ получить текущий указатель стека, что -то вроде значения ESP на x86?

Это было полезно?

Решение

С помощью ARM вам нужно подумать о вызове конвенции, поскольку функция с более чем четырьмя аргументами заставила бы их проливаться в стек. Я нахожу намного безопаснее использовать GCC __builtin_frame_address.

Built-in Function: void * __builtin_frame_address (unsigned int level)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top