Estoy tratando de leer la pila de un proceso secundario pero sin suerte. Sé que es posible usarlo ptrace, pero ptracela interfaz le permite leer solo una palabra a la vez, y estoy tratando de escanear porciones más grandes de la pila.
También intenté leer los /proc/$pid/memlímites de la pila extraídos del /proc/$pid/mapsarchivo después de usar ptrace para adjuntarlo (como se sugiere aquí ), pero la lectura sigue fallando (incluso cuando se ejecuta como root) aunque el mismo código tiene éxito cuando se intenta lectura de diferentes partes del proceso (por ejemplo, montón).
¿Qué estoy haciendo mal? ¿Hay alguna otra opción?
waitpidentreptrace(PTRACE_ATTACH,…)yread(de lo contrario, hay una posible condición de carrera)? ¿Qué errorreaddevuelve? ¿El niño está haciendo algo peculiar con su mapeo de memoria? ¿Puede probar su código con un niño simple comosleep?