Ich versuche, den Stapel eines untergeordneten Prozesses zu lesen, habe aber kein Glück. Ich weiß, dass dies möglich ist ptrace, aber über ptracedie Benutzeroberfläche können Sie jeweils nur ein Wort lesen, und ich versuche, einen größeren Teil des Stapels zu scannen.
Ich habe auch versucht, das /proc/$pid/memaus den Grenzen des Stapels zu lesen, wie es aus der /proc/$pid/mapsDatei extrahiert wurde, nachdem zuerst ptrace zum Anhängen verwendet wurde (wie hier vorgeschlagen ), aber das Lesen schlägt weiterhin fehl (selbst wenn es als Root ausgeführt wird), obwohl derselbe Code beim Versuch erfolgreich ist Lesen aus verschiedenen Teilen des Prozesses (z. B. Haufen).
Was mache ich falsch? Gibt es noch eine andere Möglichkeit?
waitpidzwischenptrace(PTRACE_ATTACH,…)und angerufenread(sonst gibt es eine mögliche Rennbedingung)? Welcher Fehler kommtreadzurück? Tut das Kind etwas Besonderes an der Speicherzuordnung - können Sie Ihren Code mit einem einfachen Kind wie dem versuchensleep?