Palavras-chave: exceções, gdb, depuração, debug exceptions, catch
Ao depurarmos programas C++ o GDB costuma interromper a execução quando a exceção é pega (catch) ou já quando um signal é lançado e o programa é abortado. O problema é que esse momento é tarde demais para saber o que ocorreu e o stacktrace é inútil. O que queremos é que o GDB faça um break quando a exceção é lançada e para isso usa-se o comando catch throw
. O mesmo comando pode ser usado para interromper a execução na captura (catch catch
).