¿Existe una llamada para determinar el tamaño de pila de un subproceso en ejecución? He estado buscando en la documentación de funciones de subprocesos de MSDN y parece que no puedo encontrar uno.tamaño de pila de subprocesos en Windows (Visual C++)
Respuesta
Si bien no hay una API para averiguar el tamaño de la pila directamente, el espacio de direcciones virtuales contiguos debe reservarse hasta el tamaño máximo de la pila; es solo que una gran cantidad de ese espacio no está comprometido todavía. Puede aprovechar esto y hacer dos llamadas al VirtualQuery.
Para la primera llamada, pase la dirección de cualquier valor en la pila para obtener la dirección base y el tamaño, en bytes, del espacio de la pila comprometida. En una máquina x86 donde la pila crece hacia abajo, resta el tamaño de la dirección base y VirtualQuery nuevamente: esto te dará el tamaño del espacio reservado para la pila (suponiendo que no estás precisamente en el límite del tamaño de la pila en ese momento)) Sumar los dos naturalmente le da el tamaño total de la pila.
Puede obtener el tamaño actual confirmado desde la parte superior e inferior en el TEB. Puede obtener la reserva inicial del proceso y los tamaños de compromiso a partir del PE header. Pero no puede recuperar los tamaños reales pasados a CreateThread, ni hay ninguna API para obtener el tamaño restante de reservado ni comprometido de la pila actual, consulte Thread Stack Size.
- 1. Aumentar tamaño de pila en Windows (GCC)
- 2. Comprobación del tamaño de la pila en C#
- 3. La pila .NET vs pila de Windows
- 4. C# Aumentar Tamaño de pila - ¿Es posible
- 5. C/C++ tamaño de pila máximo del programa
- 6. -Xms: ¿tamaño de pila inicial o tamaño de pila mínimo?
- 7. Estimación del tamaño de pila
- 8. ¿Cómo encontrar el tamaño máximo de pila actual de subprocesos en .net?
- 9. ¿Cómo obtener la información de la pila de subprocesos en Windows?
- 10. Cambiar la prioridad de subprocesos de subprocesos en Windows
- 11. montón y pila de ensamblaje de Windows?
- 12. C++ desbordamiento de pila
- 13. C++ std máximo :: la longitud de la cadena viene dictada por el tamaño de pila o el tamaño de pila?
- 14. Visual C++ seguridad de subprocesos libre y malloc?
- 15. Tamaño de pila de hilo seguro?
- 16. Trazado de pila Java en Windows
- 17. Implementación de una pila genérica segura para subprocesos en C++ en linux
- 18. Determinación del espacio de pila con Visual Studio
- 19. Subprocesos de fondo en C#
- 20. Asignación de pila en C
- 21. pila de espagueti en C
- 22. Aumente el tamaño de la pila en Linux con setrlimit
- 23. Crear una pila de tamaño fijo
- 24. C + + sobrecarga de subprocesos
- 25. Depuración de subprocesos C#
- 26. estableciendo programáticamente max java tamaño de pila
- 27. procesos y subprocesos de muertes en Ruby en Windows
- 28. sobreasignación de subprocesos de subprocesos de Java
- 29. Función de llamada C con diferente puntero de pila (gcc)
- 30. Perfilado de aplicaciones C++ de subprocesos múltiples
Más información aquí: http://stackoverflow.com/questions/1740888/determining-stack-space-with-visual-studio/1747499#1747499 – Philip