Preguntas con respuestas sobre "stack-unwinding"

28 preguntas, página #1

0

votos

3

respuestas

vistas 1,723

Desenrollado de RAII y Stack

TIL que mis nociones del 'entrelazamiento' (a falta de una palabra mejor) de RAII y desenrollado de pila son / eran bastante (si no completamente) incorrectas. Tenía entendido que el uso de RAII, protegido contra cualquier / todas las fugas de recursos, incluso aquellas potencialmente causadas por excepciones no controladas. ...

preguntado 11 años, 9 meses

1

votos

1

respuestas

vistas 639

pila de desenrollado en dwarf2

No entiendo cómo la pila que se desenrolla en dwarf2 asegura una recuperación confiable de argumentos en algunos escenarios ABI (Application Binary Interface) muy básicos. Considere una ABI, que dice que los primeros tres argumentos deben estar en registros y descansar en la pila. Según tengo entendido, la pila de dwarf2 ...

preguntado 11 años, 10 meses

3

votos

3

respuestas

vistas 772

Obtener el valor del puntero de la pila mientras la pila se desenrolla con dwarf2

En el formato de depuración DWARF2, el desenrollado de la pila se admite con la ayuda de CFI (Información de trama de llamada) presente en la sección .debug_frame. Esta es precisamente una tabla que mantiene una regla para que cada registro obtenga su valor en el marco anterior. Sin embargo, todas estas reglas se basan en el hecho de que los registros ...

preguntado 11 años, 11 meses

6

votos

3

respuestas

vistas 1,016

Cómo detectar la pila que se desenrolla en un destructor

Tengo un objeto C ++ simple que creo al comienzo de la función F () para asegurar que se llamen dos funciones coincidentes (OpDo, OpUndo) al comienzo y al retorno de F (), usando el constructor y el destructor del objeto. Sin embargo, no quiero que la operación se deshaga en caso de que se produzca una excepción ...

preguntado 12 años, 3 meses

0

votos

3

respuestas

vistas 205

Pregunta de puntero

De acuerdo, paso por 2 capas de funciones fun1 llama a func2 llama a func3. Paso un puntero hacia abajo usando básicamente int * ptr, en el "nivel" más bajo de la pila de llamadas. También tengo otra función que asigna memoria dinámicamente para una matriz int. En el nivel superior (nivel func1) siempre obtengo nulo ...

preguntado 13 años, 5 meses