Saya mencoba membaca tumpukan proses anak tetapi tidak berhasil. Saya tahu itu mungkin menggunakan ptrace
, tetapi ptrace
antarmuka memungkinkan Anda untuk membaca hanya satu kata pada suatu waktu, dan saya mencoba untuk memindai bagian yang lebih besar dari tumpukan.
Saya juga mencoba membaca /proc/$pid/mem
dari batas stack yang diekstraksi dari /proc/$pid/maps
file setelah terlebih dahulu menggunakan ptrace untuk melampirkannya (seperti yang disarankan di sini ) tetapi pembacaannya tetap gagal (bahkan ketika dijalankan sebagai root) meskipun kode yang sama berhasil ketika dicoba membaca dari berbagai bagian proses (misalnya tumpukan).
Apa yang saya lakukan salah? Apakah ada opsi lain?
waitpid
antaraptrace(PTRACE_ATTACH,…)
danread
(jika tidak, ada kemungkinan kondisi balapan)? Kesalahan apa yang munculread
? Apakah anak melakukan sesuatu yang aneh dengan pemetaan memorinya - dapatkah Anda mencoba kode Anda dengan anak sederhanasleep
?