Sto cercando di leggere lo stack di un processo figlio ma senza fortuna. So che è possibile utilizzarlo ptrace
, ma ptrace
l'interfaccia di ti permette di leggere solo una parola alla volta e sto cercando di scansionare porzioni più grandi dello stack.
Ho anche provato a leggere i /proc/$pid/mem
limiti dello stack come estratto dal /proc/$pid/maps
file dopo aver usato ptrace per collegarlo (come suggerito qui ) ma la lettura continua a fallire (anche quando viene eseguita come root) anche se lo stesso codice ha esito positivo quando provato lettura da diverse parti del processo (ad es. heap).
Che cosa sto facendo di sbagliato? C'è qualche altra opzione?
waitpid
traptrace(PTRACE_ATTACH,…)
eread
(altrimenti c'è una possibile condizione di gara)? Quale erroreread
restituisce? Il bambino sta facendo qualcosa di strano con la sua mappatura della memoria? Puoi provare il tuo codice con un bambino semplice comesleep
?