Itanium ABI indica che la memoria per un'eccezione si ottiene chiamando __cxa_allocate_exception(size)
. Qual è la garanzia di allineamento della memoria restituita?Esistono garanzie di allineamento per la memoria delle eccezioni allocata tramite l'ABI Itanium?
risposta
Section 1.2 in chapter 4 dice:
L'interfaccia svolgimento utilizza un puntatore a un oggetto intestazione eccezione come sua rappresentazione di un'eccezione essere gettato. In generale, la rappresentazione completa di un oggetto eccezione è lingua e l'attuazione specifiche, ma sarà preceduto da un'intestazione compreso dall'interfaccia svolgimento, definita come segue:
seguito da una definizione di struct _Unwind_Exception
, seguita da:
Un oggetto
_Unwind_Exception
deve essere allineato a due parole.
Poiché questo è un prefisso all'oggetto eccezione in generale, l'intero blocco di memoria deve essere doppia parola allineato.
Probabilmente questo testo non vieta imbottitura arbitrario pensa prima il _Unwind_Exception
, ma se questo è considerato il caso, allora la risposta è che non c'è alcuna garanzia allineamento qualunque; Scelgo di interpretare questo come un minor difetto di formulazione.
- 1. aumentare la memoria allocata all'applicazione
- 2. Sapere dove viene allocata la memoria tramite FastMM
- 3. Come azzerare la memoria allocata da Marshal.AllocHGlobal?
- 4. FastMM: memoria totale allocata
- 5. Utilizzo di realloc per ridurre la memoria allocata
- 6. Android - ottiene memoria allocata
- 7. Il C# ripulisce la memoria allocata C++?
- 8. dove la memoria allocata quando dichiariamo statico?
- 9. enum Java, come e quando la memoria allocata per costante
- 10. Dove è allocata la memoria per un vettore C++ locale?
- 11. Memoria allocata dinamicamente al C++
- 12. Liberare memoria allocata con newCString
- 13. Gestione delle eccezioni WCF tramite IErrorHandler
- 14. C++ allineamento memoria
- 15. Una tecnica di classe base per la gestione delle eccezioni
- 16. C++ allineamento memoria questione
- 17. Allontanarsi da Itanium
- 18. Allineamento della memoria sui processori moderni?
- 19. Eccezioni Java Eccezioni C++
- 20. La memoria allocata in una funzione rimane allocata anche dopo il ritorno della funzione?
- 21. Come viene allocata la memoria associata a std :: future?
- 22. Allineamento memoria predefinita MSVC di 8
- 23. Utilizzo delle annotazioni per la gestione delle eccezioni?
- 24. iterazione su memoria allocata con Marshal.AllocHGlobal()
- 25. Memoria libera allocata in una funzione diversa?
- 26. GNU malloc_info(): ottiene una memoria veramente allocata?
- 27. Come liberare correttamente la memoria allocata dal posizionamento nuovo?
- 28. È sicuro allocare la memoria allocata con nuova?
- 29. Android - rilascio memoria allocata AnimationDrawable sta usando
- 30. Come determinare se la memoria è allineata? (* test * per allineamento, non allineamento)