¿Cómo saber si una dirección específica está en la pila o en el montón usando un depurador inmediato?

1

Tengo una dirección (es decir, 0x010f73fc) y necesito saber dónde existe esta dirección. ¿Está en la pila o en el montón?

De otra manera, ¿cómo diferenciar entre las direcciones que pertenecen a la pila y las direcciones que pertenecen al montón?

    
pregunta Ahmed Taher 03.08.2013 - 18:36
fuente

3 respuestas

1

Como regla general, no se puede saber solo por la dirección. Pero con algún contexto puedes. Mira el registro SP, por ejemplo. La pila y el montón suelen crecer entre sí, por lo que en un entorno de baja presión de memoria, las direcciones deben estar muy separadas.

    
respondido por el tylerl 03.08.2013 - 21:38
fuente
1

Realmente no puedes saberlo porque cada hilo tiene su propia pila, y las pilas de hilos son asignado ... en el montón.

Un sistema operativo dado normalmente tendrá un área previamente asignada reservada para la pila del "hilo principal", pero esto depende de la versión exacta del sistema operativo y puede, conceptualmente, moverse de forma aleatoria en cada ejecución. Sin embargo, su depurador, si está adjunto al proceso, debería poder darle la lista de subprocesos que se están ejecutando actualmente y, para cada uno de ellos, su puntero de pila actual, dándole pistas sobre el paradero de todas estas pilas.

    
respondido por el Tom Leek 06.09.2013 - 20:05
fuente
0

Bueno, puede encontrarlo en su sistema en un momento determinado, pero no puede juzgar que en todo momento esa dirección (incluso en su máquina) estará en la pila o montón.

En los días anteriores a ASLR, simplemente podía abrir el programa en un depurador (como inmunidad) y ver a dónde pertenece la dirección, para ese programa en particular. Ahora no es posible incluso para el mismo programa.

    
respondido por el oldnoob 07.08.2013 - 18:33
fuente

Lea otras preguntas en las etiquetas