debugging - residencial - como hacer una cerca electrica casera
Comprender la salida de la cerca eléctrica y gdb (2)
La salida de ElectricFence simplemente significa que se quedó sin memoria y no puede ayudarlo.
ElectricFence impone una sobrecarga de memoria extremadamente alta, especialmente para programas con muchas asignaciones de montón pequeñas.
Si estás en Linux, prueba Valgrind en su lugar.
También tenga en cuenta que su primer paso para un programa que muere con SIGSEGV
no debería ser ejecutarlo con ElectricFence; en su lugar, debe ejecutar el programa bajo depurador y ver dónde se bloquea.
Al depurar un programa que finaliza con una segfault, electric fence, junto con gdb, devuelve esto:
"ElectricFence Exiting: mprotect() failed: Cannot allocate memory [Thread 0xb0bd4b70 (LWP 5363) exited] Program exited with code 0377.
De hecho, pensé que la cerca eléctrica sería más útil. ¿Qué significa esto? ¿Cómo puedo interpretar esta información? No parece haber ninguna pila que pueda mirar, o al menos bt
no devolverá nada.
Cualquier sugerencia sería realmente apreciada.
¡Gracias!
Probablemente se haya quedado sin áreas de mapas de memoria. Se sabe que el valor predeterminado es bajo cuando se usan asignadores de depuración. Esto se puede ajustar en tiempo de ejecución a través de
echo 128000 > /proc/sys/vm/max_map_count
o agregando esta línea a /etc/sysctl.conf y reiniciando:
vm.max_map_count = 128000
El número max_map_count está predeterminado en 65530 y puede aumentarse hasta MAX_INT si es necesario.
Para más información, ver: