Pergunta

Preciso preencher todo o espaço de pilha disponível com caracteres específicos para fins de perfil.

Primeiro de tudo, existe uma maneira segura de fazer isso no Android (algumas funções específicas do compilador, talvez) no C ++? Caso contrário, posso assumir que o endereço da primeira variável declarado em uma função é o "início" da pilha "não utilizada"? Se não existe uma maneira de obter o ponteiro de pilha atual, algo como o valor ESP no x86?

Foi útil?

Solução

Com o ARM, você precisa pensar em ligar para a convenção, já que uma função com mais de quatro argumentos os faria derramar para empilhar. Eu acho muito mais seguro usar __Builtin_frame_address do GCC.

Built-in Function: void * __builtin_frame_address (unsigned int level)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top