Seu projeto precisa de performance?

Conheça nossas soluções de Hospedagem Cloud e VPS de alta velocidade.

Conhecer Planos

  • 0 Voto(s) - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Problema: OTServ (TFS 1.3x) Abre e Fecha Imediatamente no Windows Server 2022 (ou VPS
#1
O problema


Você tenta abrir seu servidor OTServ (TFS 1.3x) no Windows (geralmente em uma VPS), mas ele fecha sozinho em segundos, sem mostrar erro no console, nos logs ou no sistema.

Outros servidores até rodam, mas este específico não abre de jeito nenhum.

A verdadeira causa
Ao verificar o Visualizador de Eventos do Windows, aparece o erro:
Código:
Exceção de código: 0xc000001d – Instrução ilegal

Isso significa que o OTServ foi compilado com otimizações de CPU que usam instruções avançadas como AVX, AVX2, FMA, etc.
Essas instruções existem no processador do PC onde você compilou (Windows 10 moderno), mas não existem no processador da sua VPS (mais antigo ou limitado pela virtualização).
Resultado: o Windows tenta rodar e... instrução ilegal → fecha o programa.
 
Como corrigir

Você precisa recompilar o OTServ para que ele use um conjunto de instruções mais compatível com CPUs antigas.
Passos no Visual Studio:
  1. Abra o projeto do OTServ no Visual Studio
  2. No menu, vá em Propriedades do Projeto
  3. Escolha:
    • Configuração: Release
    • Plataforma: x64
  4. Vá em Configurações de C/C++ → Geração de Código
  5. Localize Habilitar Conjunto de Instruções Aprimorado (Enable Enhanced Instruction Set)
  6. Altere para: 
    Streaming SIMD Extensions 2 (SSE2) (/arch:SSE2)Essa é a opção mais compatível com praticamente todos os processadores x64 modernos e antigos.
  7. Não use AVX, AVX2, FMA, etc. — elas causam exatamente esse erro em CPUs mais antigas.
  8. Recompile e envie o novo .EXE para a VPS.
 

Por que SSE2 funciona?
O SSE2 é suportado por praticamente todos os processadores x64 desde 2003.
Ao limitar a compilação a esse conjunto de instruções, você garante que o executável vai rodar tanto em máquinas modernas quanto em VPS antigas, evitando o erro de “Instrução Ilegal”.
 

Por que SSE2 funciona?
O SSE2 é suportado por praticamente todos os processadores x64 desde 2003.
Ao limitar a compilação a esse conjunto de instruções, você garante que o executável vai rodar tanto em máquinas modernas quanto em VPS antigas, evitando o erro de “Instrução Ilegal”.


Como cheguei no problema?.
Por que usar o Log de Eventos?
Quando um programa fecha inesperadamente, o Windows normalmente registra informações detalhadas sobre o motivo, mesmo que o console do programa não mostre nada.
Esses registros ficam no Visualizador de Eventos (Event Viewer).


Onde procurar?
No Visualizador, existem categorias chamadas Logs do Windows → Aplicativo e Logs do Windows → Sistema.
É nesses dois lugares que aparecem erros como:
  • Falta de DLLs
  • Acesso negado
  • Erro de instrução ilegal (0xc000001d)
  • Travamentos inesperados


O que você vai encontrar?
Mensagens com:
  • Nome do programa (por exemplo,otserv.exe)
  • Nome de DLLs ou arquivos que ele tentou carregar
  • Códigos de erro que indicam a causa do crash


Como isso ajuda no caso do OTServ?
No problema que você descreveu, foi justamente olhando nesse log que apareceu o código de exceção 0xc000001d, revelando que o executável estava usando instruções de CPU incompatíveis com a VPS.



Caso for problema de Dll baixe esse Back que ira resolver
Visual-C-Runtimes-All-in
  Responder


Pular para o Fórum:


Usuários navegando neste tópico: 1 Convidado(s)