Como obter automaticamente o stack trace quando o programa em C++ trava?
Olá a todos! Estou programando em C++ no Linux com o compilador GCC e estou constantemente tendo problemas para depurar bugs difíceis de encontrar. O programa trava com segmentation fault, mas não consigo entender exatamente onde isso acontece, porque o travamento ocorre raramente e em lugares aleatórios.
Já estou usando asserts, mas eles não ajudam quando o bug está relacionado a corrupção de memória ou estouro de buffer. Quero que, em qualquer crash (SIGSEGV, SIGABRT, SIGFPE, etc.), o programa exiba automaticamente o stack trace completo com nomes de funções, arquivos e números de linha.
Aqui está um exemplo do meu código que trava:
```cpp
#include
#include
void dangerous_function(int* ptr) {
*ptr = 42; // Aqui pode ocorrer segfault se ptr == nullptr
}
int main() {
std::vector vec(10);
```
No answers yet.
Faça login para deixar uma resposta
Blogs