Por que os aplicativos “precisam fechar” ou “parar de funcionar”, e o que posso fazer sobre isso?

6

Enquanto uso um aplicativo, a seguinte mensagem de erro é exibida (dependendo da versão do Windows):

Windows XP

[application name] has encountered a problem and needs to close. We are sorry for the inconvenience.

Windows Vista, Windows 7, Windows 8

[application name] has stopped working

Em seguida, o aplicativo é fechado. Por que os aplicativos "precisam fechar" ou "parar de funcionar" e o que posso fazer em relação a isso?

    
por manchester050 . 25.02.2012 / 16:36

7 respostas

5

Em primeiro lugar, esse erro não é sua culpa.

Algum programador esqueceu de lidar com algum erro em seu programa, então ele falha.

É claro que o problema não tem para estar no próprio aplicativo (assim o programador está fora do gancho). Pode ser no Windows ou pode estar no runtime do MSVC, ou no runtime do .Net ou nos drivers da sua placa de vídeo ou qualquer outra coisa (é por isso que sempre é solicitado que você instale todas as atualizações antes de entrar em contato com o suporte).

Então você tem tudo isso coberto, mas o problema persiste. O que agora?

Bem, agora a única coisa que resta é que o aplicativo em questão está com defeito e o programador não está fora do gancho para este ( A-HA! ). Então, é o problema do autor do software. Então, entre em contato com eles e pergunte se eles poderiam ajudá-lo e corrigir esse problema.

Mas e se eles me disserem que seu software é perfeito, eu sou o único com esse problema e, geralmente, é minha culpa?

Agora vem a parte divertida. Você pode encontrar a causa real de sua mensagem de erro.
O que a aplicação realmente disse ao sistema operacional que fez o sistema operacional ir " Você precisa se desligar do f-down! "?

Para fazer isso, você tem muitas ferramentas à sua disposição.

  • Arquivos de log
  • O log de eventos do Windows
  • Process Monitor

Se o aplicativo em questão gravar qualquer arquivo de log, ele poderá ser considerado ouro em busca da causa do problema do aplicativo. Leia e discuta possíveis mensagens de erro aqui.

O log de eventos do Windows certamente conterá algumas informações sobre o aplicativo danificado. Se for realmente um aplicativo .Net, você pode até ter sorte e conseguir extrair uma pilha de chamadas do log (o que seria muito útil para desenvolvedores).

Se tudo mais falhar, vá para Process Monitor . O Process Monitor é uma ferramenta que registra todas a comunicação entre um aplicativo e o sistema operacional (por assim dizer). Assim, nos dados capturados resultantes, você podia ver exatamente qual função o aplicativo chamava que resultava na condição de erro não tratada. Isso pode ser algo trivial como tentar acessar um arquivo ou objeto de registro inexistente. Mas descobrir que uma chamada no registro pode levar muito tempo e, se você não tiver experiência com desenvolvimento de software, provavelmente não chegará muito longe com essa abordagem.

Se isso faz você ir " Bem, é muito improvável que isso me ajude a resolver meu problema. ", então provavelmente você está certo. Embora possa ser divertido tentar rastrear um problema como esse para certas pessoas, geralmente é o trabalho da pessoa que escreveu o software com falha.

Eles estão muito melhor equipados para encontrar o problema do que você. Um relatório de bug adequado pode ser um longo caminho, às vezes.

    
por 25.02.2012 / 17:02
4

Uninstalled previous version(s) of .NET Framework and installed 4.0

Nunca faça isso , você não deve desinstalar o .NET frameworks. A ideia por trás dessas versões é que quando a Microsoft melhora e faz alterações no .NET framework, elas podem (e freqüentemente) quebrar a compatibilidade em programas que foram desenvolvidos em versões anteriores do .NET.

Para evitar esse problema, uma nova versão do .NET é lançada e pode ser instalada lado a lado das outras. Os Windowss os gerenciam corretamente e, em seguida, carregam qualquer versão solicitada por um programa. Isso permite que você execute programas antigos e novos sem problemas.

Eu repito, quando uma aplicação é projetada para o .NET 3.5, não se espera que ela seja executada confiavelmente em qualquer outra versão .NET .

Como um dos seus comentários menciona que o seu "software personalizado sempre funcionou antes de você desinstalar a versão anterior do .NET", vou em frente e sugiro que você os reinstale. A maneira mais fácil de fazer isso é reinstalar o aplicativo - eles geralmente incluem o instalador .NET apropriado de que precisam.

    
por 25.02.2012 / 19:07
3

Em resposta ao seu último comentário à minha resposta, acho que a maioria concorda que não há informações suficientes para fornecer uma solução precisa para você.

Reinstalar o .NET foi um palpite, mas não podemos saber quais outros arquivos / entradas de registro seus utilitários de limpeza excluíram, e quais podem ter sido críticos.

Minha primeira resposta é : se a reinstalação do aplicativo não ajudar, entre em contato com seu fornecedor / desenvolvedor para descobrir. O fornecedor sabe quais arquivos são esperados ao lançar seu aplicativo, não sabemos!

Então eu notei no seu perfil que você postou uma pergunta no stackoverflow onde você indica que a sua unidade C "quase não tem nenhum kb sobrando" - o que provavelmente iniciou sua limpeza. Bem, você sabe, essa seria a primeira coisa que eu tentaria consertar se fosse você. Você deve ter sempre pelo menos 1 GB livre.

Alguns espaços livres de MB estão solicitando problemas e certamente podem causar erros de "necessidade de fechar" se o espaço tentar ser alocado pelo Windows ou por seus aplicativos. Também ajudaria a evitar a necessidade de limpezas extremas e excluir inadvertidamente arquivos importantes.

Assim, minha segunda resposta é : Obtenha um novo (ou use outro) disco rígido principal maior o mais rápido possível. Se seus aplicativos ainda falharem, talvez seja necessário reinstalar o Windows e todos os aplicativos / drivers nele. É muito trabalho, mas em última análise, é uma excelente solução para o seu problema (leia-se: quase certamente irá corrigi-lo).

Por fim, os utilitários de limpeza não são utilitários oficiais. É verdade que o Windows tende a acumular coisas, mas que os utilitários de limpeza fazem um bom trabalho para desmontá-lo é discutível. A maior parte do crescimento do Windows é proveniente de bibliotecas (DLLs), atualizações e vários aplicativos instalados, cujos utilitários não devem tentar mexer muito de qualquer maneira. Pastas temporárias são fáceis de limpar à mão de tempos em tempos. Muitas vezes, a melhor limpeza que você pode fazer é desinstalar os aplicativos que não são absolutamente necessários. Você sabe, eu acho que a maioria das ferramentas de limpeza adiciona mais inchaço do que o que eles limpam. Essa lista enorme de anti-malware que você instalou também parece um exagero para o trabalho em questão.

Então, minha terceira resposta é : facilite a limpeza no futuro. O espaço em disco é barato o suficiente para que você possa evitar todo esse problema para economizar alguns megabytes.

Favor desinstalar aplicativos não utilizados e excluir manualmente pastas "TEMP" de tempos em tempos. Tanto quanto possível, evite instalar muitos aplicativos apenas para testá-los - pois isso contribui para o crescimento desnecessário de janelas, que é difícil de recuperar. O ideal é se ater a um bom antivírus, um bom anti-malware e o que você precisa para trabalhar. Evite mexer com o registro!

    
por 29.02.2012 / 17:59
1

Primeiro, o erro (Some program application) has encountered a problem and needs to close. We are sorry for the inconvenience. é uma mensagem de erro completamente genérica do Windows. Se fosse fácil dizer '(Alguns programas) parassem de funcionar porque o desenvolvedor não era responsável pelo erro ID10-T na pilha de memória' , então o erro genérico realmente não seria necessário!

Infelizmente, desenvolvedores e engenheiros de software não podem contabilizar cada um e cada coisa que pode causar a falha inesperada de um programa. Sim, existem alguns programas que têm métodos de tratamento de erros "ótimos" que descartam algum número aleatório que significa "algo", mas, para obter isso, significa que o desenvolvedor respondeu a ESSE erro específico.

Algumas razões pelas quais a mensagem genérica pode ser dada são por causa de coisas como:

  • Erros gerais de acesso à memória ou recursos ( Falha de segmentação )
  • Configurações incorretas do antivírus (não permitindo o acesso ao programa)
  • Erros do modo de compatibilidade (tente executar o aplicativo em um 'modo de compatibilidade para outra versão do Windows)
  • Práticas de codificação inadequadas pelo desenvolvedor ou teste / análise de erros insuficiente
  • Chamadas de API depreciadas do Windows sendo usadas pelo aplicativo
  • Dependências (outras estruturas, DLLs, recursos compartilhados) não atualizadas ou disponíveis
  • etc, etc

Não há como listar as muitas possibilidades diferentes de por que o erro ocorrerá. Sua melhor aposta para "consertar" o problema é verificar com o desenvolvedor do software e garantir que as bibliotecas / recursos do sistema estejam totalmente atualizados e compatíveis com os requisitos especificados pelos fornecedores do aplicativo.

    
por 08.05.2012 / 19:56
1

"A inscrição encontrou um problema e precisa ser encerrada. Lamentamos pelo inconveniente"

Esta é sempre uma resposta ao aplicativo fazendo algo que significa que o programa não pode continuar com segurança.

  • Algo no processo correu muito mal e o processo não é mais seguro para continuar (geralmente é o heap percebendo que um estouro de heap ou uma vulnerabilidade dupla-livre foi acionada).

  • O programa tentou ler, gravar ou executar a memória que não está lá ou para a qual a operação é inválida (como a DEP parando a execução de dados na pilha).

  • O programa disparou uma exceção e nenhum manipulador registrado sabia como lidar com isso.

A caixa de diálogo é o Windows avisando que o programa morreu de maneira descontrolada, enquanto é feito um despejo do programa a ser enviado ao Serviço de Relatório de Erros do Windows. Esses despejos de memória podem ser visualizados pelos desenvolvedores do programa para tentar corrigir o bug.

Esta não é uma indicação de que você foi atacado por um vírus. É uma indicação de que o programa está com defeito. A única solução é enviar o despejo de memória ao desenvolvedor original do programa (via WER) e atualizar para a versão corrigida assim que o bug for corrigido.

    
por 10.05.2012 / 11:25
0

Geralmente, isso significa que o programa encontrou uma exceção (esse é um erro que fará o programa travar). O que causa esse erro depende do aplicativo, por isso é difícil para nós dizer exatamente o que está errado.

Soluções gerais estão reinstalando o programa ou excluindo seus arquivos temporários (os utilitários de limpeza podem não detectá-los). Talvez ele encontre uma exceção relacionada ao controle de conta do usuário, portanto, tente executar o programa como administrador (clique com o botão direito do mouse, execute como administrador). Em alguns programas, também é causado pelo DEP (Data Execution Protection, um sistema de segurança). Esta página explica como desativá-lo para o seu programa.

Existe também a possibilidade de que este programa tente gravar um arquivo em um local ao qual ele não tem acesso. Tente dar ao programa que você está executando permissões de gravação (clique com o botão direito, propriedades, segurança)

Verifique também se você instalou as atualizações mais recentes para o Windows e esse programa específico.

    
por 08.05.2012 / 19:48
0

Tente usar um programa como Soluto , que detecta falhas e oferece conselhos sobre como corrigir o problema, se ele estiver disponível. O Soluto usa crowdsourcing para detectar falhas e oferecer correções.

    
por 02.07.2012 / 11:28