Saya mencoba membaca tumpukan proses anak tetapi tidak berhasil. Saya tahu itu mungkin menggunakan ptrace, tetapi ptraceantarmuka 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/memdari batas stack yang diekstraksi dari /proc/$pid/mapsfile 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?
waitpidantaraptrace(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?