Avatar ·

Cómo obtener automáticamente el stack trace cuando un programa en C++ falla

¡Hola a todos! Escribo en C++ bajo Linux con el compilador GCC, y constantemente tengo problemas para depurar errores difíciles de detectar. El programa falla con segmentation fault, pero no puedo entender dónde ocurre exactamente porque el fallo es raro y en lugares aleatorios. Ya uso asserts, pero no ayudan cuando el error está relacionado con corrupción de memoria o desbordamiento de buffer. Quiero que ante cualquier crash (SIGSEGV, SIGABRT, SIGFPE, etc.) el programa muestre automáticamente el stack trace completo con nombres de funciones, archivos y números de línea. Aquí hay un ejemplo de mi código que falla: ```cpp #include #include void dangerous_function(int* ptr) { *ptr = 42; // Aquí puede haber segfault si ptr == nullptr } int main() { std::vector vec(10); int* bad_ptr = nullptr; dangerous_function(bad_ptr); // ¡Accidente! return 0; } ``` He oído sobre backtrace() y backtrace_symbols(), pero solo devuelven direcciones, no nombres legibles. ¿Cómo se