Tôi đang cố đọc ngăn xếp của một quá trình con nhưng không có may mắn. Tôi biết có thể sử dụng ptrace, nhưng ptracegiao diện của nó cho phép bạn chỉ đọc một từ một lần và tôi đang cố quét một phần lớn hơn của ngăn xếp.
Tôi cũng đã thử đọc /proc/$pid/memtừ các ràng buộc của ngăn xếp như được trích xuất từ /proc/$pid/mapstệp sau lần đầu tiên sử dụng ptrace để đính kèm với nó (như được đề xuất ở đây ) nhưng việc đọc vẫn không thành công (ngay cả khi chạy bằng root) mặc dù cùng một mã đã thành công khi thử đọc từ các phần khác nhau của quá trình (ví dụ heap).
Tôi đang làm gì sai? Có lựa chọn nào khác?
waitpidgiữaptrace(PTRACE_ATTACH,…)vàread(nếu không có một điều kiện cuộc đua có thể)? Lỗi gìreadtrở lại? Có phải đứa trẻ đang làm bất cứ điều gì đặc biệt với ánh xạ bộ nhớ của nó - bạn có thể thử mã của mình với một đứa trẻ đơn giản như thếsleepnào không?