brother, uma vantagem de trabalhar com o form do servidor em console é a possibilidade de gerar logs em runtime, essa mensagem que você está vendo:
Lendo configuracoes do mundo... , é uma forma de log. Então se você procurar por essa mesma string na source: utilizando o atalho da ide CRTL + SHIFT + F, e pesquisar por:
Lendo configuracoes do mundo..., você vai ser direcionado para dentro da função: INT SetupDefWindow()
dentro dessa função você vai ver:
cout << "Lendo configuracoes do mundo..." << endl;
rsRefreshConfig();
como isso está funcionando? A construção do binário em runtime é feita de cima pra baixo, então significa que ele primeiro interpreta o log, e posteriormente ele chama a função rsRefreshConfig, com esse entendimento, sabemos que se apareceu o log carregando mundo e não apareceu o próximo: cout << "Inicializando pacotes de conexao" << endl;, isso nos diz que houve algum problema dentro dessa função rsRefreshConfig, é possível que esteja ocorrendo um vazamento de memória, o que está fazendo o servidor crashar.
então já sabemos que o problema está na função rsRefreshConfig certo? o que podemos fazer caso o modo depuração não esteja nos ajudando?
vamos até a função rsRefreshConfig, copiamos toda a função e vamos mandar pro nosso amigo chatgpt, caso c++ não seja o seu forte, e então peça ao chatgpt para gerar logs dentro da nossa função, para nos ajudar a identificar exatamente o que está acontecendo e entender por que o executável está crashando.então ele vai criar vários condicionais no código e nas chamadas de funções, como por exemplo:
if (smConfigDecode("Server\\Config\\Devices.ini")) {
cout << "Por aqui tudo certo"<< endl;
} else {
cout << "macho, deu algum problema"<<endl;
}
oq isso quer dizer? se a chamada da função smConfigDecode, conseguir ler o diretório Server\\Config\\Devices.ini" com sucesso, ele diz que aqui tudo está certo, se não, ele te chama de macho e diz que deu algum problema, se por acaso o seu problema for ai, você vai voltar pro chatgpt, e vai pedir pra ele logar exatamente os dados que está lendo, e então você vai conseguir detectar, comparando com o arquivo Devices, o que pode esta faltando ou o que ele pode estar lendo de errado. Você também pode navegar até a função smConfigDecode, pode pedir pro chat gpt gerar logs de todas as variáveis da struct para entender qual está ficando vazia, qual está tendo um possível overflow etc, e por aí vai,
Bom, compreendo que talvez você não tenha noções de desenvolvimento e talvez isso não seja tão básico para você, mas aprender a depurar é o segundo passo mais importante e indispensável, logo após entender como as coisas realmente funcionam, talvez o seu objetivo com esse material seja apenas instalar e brincar com os arquivos, mas como o fórum é publico, serve pra quem realmente quiser aprender:
Não pulem etapas, aprendam como tudo funciona, aprendam a debugar. Existem várias formas de vocês debugarem o material do priston, e acriação de logs e o modo depuração da ide são apenas 2 delas. Quanto mais vocês aprenderem a debugar, mais autônomos vocês vão ficar. E sobre entender como tudo funciona, é o seguinte, a sintaxe do c++ é difícil mesmo, e com IAs, você podem pular essa etapa, o que já é muita coisa!!!! porém vocês não podem permitir que a IA decida por vocês. Entender como tudo funciona vai fazer com que vocês realmente saibam o que precisa ser feito para chegar no resultado que desejam. Dessa forma, a IA vai ser apenas um escritor de código performático, evitando problemas com bugs, crashs inesperados, vulnerabilidades, IA delirando e gerando código sem sentido, etc... trilhem os caminhos das pedras, a longo prazo, ele será o caminho mais fácil a se seguir.
E não se esqueçam, programar não é só escrever código; na maioria das vezes, é resolver problemas. Estar preparado para resolvê-los é o que diferencia um noob de alguém avançado.
enquanto eu digitava esse reels era reproduzido no meu youtube, e acredito que faz sentido com a mensagem, beijos