Pregunta

Necesito llenar todo el espacio de pila disponible con carácter específico para fines de perfiles.

En primer lugar, ¿hay una forma segura de hacer esto en Android (algunas funciones específicas del compilador tal vez) en C ++? Si no es así, ¿puedo asumir que la dirección de la primera variable declarada en una función es el "inicio" de la pila "no utilizada"? Si no, ¿hay alguna manera de obtener el puntero actual de la pila, algo así como el valor ESP en X86?

¿Fue útil?

Solución

Con ARM, debe pensar en llamar a la convención, ya que una función con más de cuatro argumentos los haría derramados para apilarse. Me parece mucho más seguro usar __Builtin_frame_address de GCC.

Built-in Function: void * __builtin_frame_address (unsigned int level)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top