Eu tenho um problema do tipo "Gato de Schroedinger" aqui - meu programa (na verdade, o conjunto de testes do meu programa, mas um programa mesmo assim) está travando, mas apenas quando construído no modo de lançamento e apenas quando iniciado a partir da linha de comando . Por meio da depuração do homem das cavernas (ou seja, mensagens de printf () desagradáveis em todo o lugar), determinei o método de teste em que o código está travando, embora, infelizmente, a falha real pareça acontecer em algum destruidor, já que as últimas mensagens de rastreamento que vejo estão em outros destruidores que são executados de forma limpa.
Quando tento executar este programa dentro do Visual Studio, ele não falha. O mesmo acontece ao iniciar a partir do WinDbg.exe. O travamento ocorre apenas ao iniciar a partir da linha de comando. A propósito, isso está acontecendo no Windows Vista e, infelizmente, não tenho acesso a uma máquina XP agora para testar.
Seria muito bom se eu pudesse fazer com que o Windows imprimisse um rastreamento de pilha ou algo diferente do que simplesmente encerrar o programa como se ele tivesse sido encerrado corretamente. Alguém tem algum conselho sobre como eu poderia obter informações mais significativas aqui e, com sorte, corrigir esse bug?
Edit: O problema foi realmente causado por uma matriz out-of-bounds, que descrevo mais neste post . Obrigado a todos pela ajuda para encontrar este problema!