Füllen Sie den gesamten verfügbaren Stapel mit spezifischem Wert [Duplikat] aus

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

  •  25-08-2022
  •  | 
  •  

Frage

Ich muss alle verfügbaren Stapelraum mit spezifischem Charakter für Profilerstellungszwecke füllen.

Gibt es in C ++ eine sichere Möglichkeit, dies auf Android (einige Compiler -spezifische Funktionen) zu tun? Wenn nicht, kann ich annehmen, dass die Adresse der in einer Funktion deklarierten ersten Variablen der "Start" des "nicht verwendeten" Stacks ist? Wenn nicht, gibt es eine Möglichkeit, den aktuellen Stapelzeiger zu erhalten, so etwas wie ESP -Wert auf x86?

War es hilfreich?

Lösung

Mit ARM müssen Sie über eine Aufruf von Convention nachdenken, da eine Funktion mit mehr als vier Argumenten sie zum Stapel verschüttet hätte. Ich finde es viel sicherer zu bedienen GCCs __builtin_frame_address.

Built-in Function: void * __builtin_frame_address (unsigned int level)
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top