Buenas tardes foreros,
ando con un proyecto entre manos en C++ y me tocó implementar la parte del stack trace tanto en el tratamiento de excepciones como en las llamadas de las funciones clave.
La verdad que ésto me impresiono bastante y me gustaría plantear lo mismo en ASM.
En ASM tenemos que la pila se divide en stack frames (marcos de pila). El registro EBP apuntará al marco de pila actual, pero claro, cada frame tiene propio tamaño, por lo que me imposibilita el poder 'caminar' por la pila en busca de las direcciones de las funciones o métodos contenidos en la pila.
Para poder calcular el tamaño de una frame podriamos restar EBP y ESP, ya que a ESP le quitamos el tamaño de los parámetros y variables locales reservadas por la función.
¿Podría alguien encaminarme? En caso de conseguirlo entonces publicaría el code.
Un saludo!