Solução de problemas
Como relatar um problema corretamente:
Se você quiser fazer uma sugestão, registrar um erro ou uma falha sua, ou ainda precisar de ajuda "ao vivo", pode sempre recorrer a este endereço. Basta clicar no botão verde New issue e preencher o formulário.
Os desenvolvedores agradecem se a descrição do problema for o mais detalhada possível:
- A versão do seu sistema operacional; A versão (número da build) do servidor HLDS (ou do ReHLDS);
- A versão do seu jogo (ou mod);
- A versão do Metamod-r (número ou data da build);
- Você também pode informar a lista de módulos (digitando
meta listno console do servidor).
- Você também pode informar a lista de módulos (digitando
- Anexe os logs;
- Anexe os crashdumps;
Isso ajuda em uma análise mais minuciosa e, possivelmente, na correção dos seus problemas no futuro.
Como obter dumps de travamento do HLDS\reHLDS
Fonte principal (em russo).
Espelho (em russo).
Não publique dumps abertamente na internet, porque eles costumam conter informações completas sobre o servidor, inclusive o rcon e afins. Para enviá-los, compacte-os com senha, o que também é útil porque eles comprimem muito bem.
Windows
Usando o WER (Relatório de Erros do Windows):
- Ative o WER (relatórios de erro):
- Antes do Vista:
- Execute o drwtsn32.exe e escolha "Full" ao lado de Crash Dump File. Ali você também vê (ou configura) onde os dumps serão guardados.
- No Vista e posteriores:
- Editando o registro, um método prático do s1lent:
Um jeito detalhado e rápido de configurar o registro para receber dumps, voltado a iniciantes.
- Configurações:
- NAME_APP -
hlds.exe- nome da aplicação que precisará gerar dumps em caso de travamento.
- REG_LINK -
HKLM\Software\Microsoft\Windows\Windows Error Reporting- caminho para a seção do Windows Error Reporting (esta configuração provavelmente não precisa ser alterada; creio que os caminhos sejam os mesmos em todas as versões do Windows)
- DumpType -
20- Dump normal1- Dump mínimo2- Dump completo- DumpCount -
15- quantidade de dumps a criar; se o número de dumps na pasta ultrapassar esse valor, o dump antigo é apagado para dar lugar ao novo.
- DumpFolder -
C:\CrashDumps- caminho da pasta onde os dumps serão guardados.
- (para evitar problemas, não use espaços nem caracteres cirílicos nos caminhos)
- Instalação:
Baixe o arquivo compactado e extraia-o.
Execute o add_RegistryDumps.bat
Depois de gravar no registro, confirme que você ativou o serviço Windows Error Reporting.
Em seguida pressione as teclas Windows + R (a tecla Windows fica entre o ctrl e o alt), ou abra o cmd.exe, ou use Iniciar - Executar; logo depois digite gpedit.msc e veja a captura de tela.
Configuração do Computador -> Modelos Administrativos -> Componentes do Windows -> Relatório de Erros do Windows
add_RegistryDumps.zip \
espelho de "add_RegistryDumps.zip"
remove_RegistryDumps.zip \
espelho de "remove_RegistryDumps.zip"
Usando o utilitário userdumps
- Instruções de unKn0wn:
Método para obter dumps com o utilitário da Microsoft:
UserModeProcessDumper \
espelho de "UserModeProcessDumper8_1_2929_5.zip".
Agradecimentos ao Lev pelas configurações.
1. Instalação
Extraia o arquivo que você baixou (por padrão, em C:\kktools\userdump8.1).
- Execute o arquivo setup.exe do diretório:
- Se você usa o Windows XP/2003 de 32 bits, então C:\kktools\userdump8.1\x86.
- Se você usa o Windows XP/2003 de 64 bits, então C:\kktools\userdump8.1\x64.
- Na janela do assistente de instalação, clique em Next.
- (Apenas em sistemas de 32 bits) Na janela Terminate Mode, escolha Disable "Dump on Process Termination" feature e clique em Next.
- Clique em Finish e aguarde a conclusão da instalação. Na janela User Mode Process Dump Setup, clique no botão YES (se por algum motivo você não souber como abrir o menu de configurações do userdump, ele está sempre no Painel de Controle - Process Dumper).
2. Como adicionar uma aplicação
Na janela Properties: User Mode Process Dumper Setup que se abre, clique em New, adicione o nome do programa desejado, por exemplo: hlds.exe (a extensão é obrigatória!) e clique em OK
3. Configurações
Na janela Properties: User Mode Process Dumper Setup, localize a regra da aplicação que você acabou de criar, selecione-a e clique no botão Rules Na janela Process Monitoring Ruless for hlds.exe que se abre
- Escolha Use custom rules.
- Se necessário, mude a pasta onde os dumps criados serão guardados.
- Em Exception Codes, selecione (com o clique esquerdo) os seguintes códigos: "Access Violation, Overflow, Illegal Instruction, Stack overflow."
- Defina o parâmetro Save Mode como Cyclic saving (5 times). Deve ficar parecido com isto:
Obs.: recomendo usá-lo junto com o Dr Watson no tipo de dump "Brief", já que o Dr Watson mantém logs em formato de texto, o que permite escolher os dumps necessários. E o userdump gera os dumps completos.
Linux
O servidor precisa ser iniciado com a flag -debug.
Se o gdb estiver instalado no sistema, informações claras sobre o erro são gravadas automaticamente no arquivo debug.log. Por isso, é recomendável instalá-lo (o comando depende do sistema usado; no Debian\Ubuntu é apt install gdb). Embora isso não seja obrigatório para gerar dumps, é bom fazê-lo sempre que possível, já que o local do travamento fica registrado no debug.log, o que permite dizer algo sobre o erro de imediato. Obter a mesma informação em outro sistema a partir de um arquivo de dump exigiria todos os binários do servidor.
Por padrão, o arquivo de dump se chama core, é gravado na pasta de trabalho e, portanto, será sobrescrito. Para evitar isso, você pode acrescentar o ID do processo ao nome:
echo 1 > /proc/sys/kernel/core_uses_pid
ou direcionar os dumps para /tmp:
echo /tmp/%e-%t-%p-%c.dmp > /proc/sys/kernel/core_pattern Mais informações
aqui.
Execução sem sudo (como root; caso contrário, as configurações gerais do sistema devem estar definidas como unlimited):
ulimit -c unlimited && ./hlds_run -debug ...
Execução com sudo (como o usuário hlds):
ulimit -Hc unlimited && sudo -u hlds sh -c "ulimit -Sc unlimited && ./hlds_run -debug ..."
Verificação da execução com sudo:
ulimit -Hc unlimited && sudo -u hlds sh -c "ulimit -Sc unlimited && whoami && ulimit -Sc && ./hlds_run -debug ..."
mostra o nome do usuário sob o qual a execução vai ocorrer e o limite de criação de dumps, e em seguida inicia o servidor.
Para testar as configurações de dump, você pode usar um módulo feito especialmente para isso:
FixItAll \
espelho do FixItAll ou
Crash.sma*.
Tabela-resumo:
Pasta - o diretório do seu mod ou jogo. Nas colunas
e
estão os nomes dos arquivos executáveis da pasta dlls, que fica dentro do diretório do seu mod ou jogo.
❌ - não existe versão para essa plataforma
| Jogo \ Mod | Pasta | ![]() | ![]() |
|---|---|---|---|
| Action Half-Life | action | ahl.dll | ahl.so |
| Adrenaline Gamer | ag | ag.dll | ag.so |
| openAG | ag | ag.dll | ag.so |
| Azure Sheep | asheep | hl.dll | ❌ |
| Base Defense | bdef | server.dll | server.so |
| The Battle Grounds | bg | bg.dll | bg.so |
| Brutal Half-Life | bhl | bhl.dll | ❌ |
| Brain Bread | brainbread | bb.dll | ❌ |
| Half-Life: Blue Shift | bshift | hl.dll | bshift.so |
| Bumper Cars | bumpercars | hl.dll | ❌ |
| BuzzyBots | buzzybots | bb.dll | ❌ |
| Chicken Fortress 3 | ckf3 | mp.dll | ❌ |
| Counter-Strike 1.0 | cs10 | mp.dll | ❌ |
| Counter-Strike 1.5 | csv15 | mp.dll | ❌ |
| Counter-Strike 1.6 | cstrike | mp.dll | cs.so |
| Counter-Strike:Condition Zero | czero | mp.dll | cs.so |
| Counter-Strike:Condition Zero Deleted Scenes | czeror | cz.dll | cz.so |
| Desert Crisis | dcrisis | dc.dll | dc.so |
| Half-Life: Decay | decay | decay.dll | ❌ |
| Deathmatch Classic | dmc | dmc.dll | dmc.so |
| Day of Defeat | dod | dod.dll | dod.so |
| Digital Paintball | dpb | pb.dll | pb.i386.so |
| Earth's Special Forces (antigo) | esf | hl.dll | hl.so (fica em linuxdll, e não no diretório dlls) |
| Earth's Special Forces | esf | hl.dll | hl.so |
| Existence | existence | existence.dll | ❌ |
| Firearms | firearms | firearms.dll | ❌ |
| Frontline Force | frontline | frontline.dll | front.so |
| Gangsta Wars | gangstawars | gwars27.dll | ❌ |
| Gangwars | gangwars | mp.dll | ❌ |
| Opposing Force | gearbox | opfor.dll | opfor.so |
| Global Warfare | globalwarfare | mp.dll | gw.so |
| Goldeneye | goldeneye | mp.dll | ❌ |
| Headcrab Frenzy | hcfrenzy | hcfrenzy.dll | hcfrenzy.so |
| Half-Life 1.5: Weapon Edition | hl15we | hl.dll | hl.so |
| HL-Rally | hlrally | hlrally.dll | hlr.so |
| Holy Wars | holywars | holywars.dll | hl.so |
| Hostile Intent | hostileintent | hl.dll | hl.so |
| International Online Soccer | ios | ios.dll | ios.so |
| Judgement | judgedm | mp.dll | judge.so |
| Kanonball | kanonball | kanonball.dll | hl.so |
| Monkeystrike | monkeystrike | monkey.dll | ms.so |
| Morbid Inclination | MorbidPR | morbid.dll | morbid.so |
| Move In! | movein | hl.dll | hl.so |
| Master Sword Continued | msc | ms.dll | ❌ |
| Natural Selection | ns | ns.dll | ns.so |
| Natural Selection Beta | nsp | ns.dll | ns.so |
| Over Ground | og | og.dll | og.so |
| Outlawsmod | ol | hl.dll | ol.so |
| Operations 1942 | ops1942 | spirit.dll | spirit.so |
| Open-Source Jailbreak | osjb | jail.dll | osjb.so |
| Out Break | outbreak | hl.dll | ❌ |
| Oz Deathmatch | oz | mp.dll | mp.so |
| Paintball | paintball | mp.dll | pb.so |
| Public Enemy | penemy | pe.dll | pe.so |
| Point of No Return | ponreturn | mp.dll | ponr.so |
| Pirates, Vikings and Knights | pvk | hl.dll | hl.so |
| Rocket Crowbar 2 | rc2 | rc2.dll | rc2.so |
| Resident Evil : Cold Blood | recbb2 | recb.dll | recb.so |
| Gunman Chronicles | rewolf | gunman.dll | ❌ |
| Ricochet | ricochet | mp.dll | ricochet.so |
| Rocket Crowbar | rockcrowbar | rc.dll | rc.so |
| Rival Species | rspecies | hl.dll | hl.so |
| Scientist Hunt | scihunt | shunt.dll | shunt.so |
| The Ship | ship | ship.dll | ship.so |
| Science & Industry | si | si.dll | si.so |
| Snow-War | snow | snow.dll | snow.so |
| StargateTC (antigo, 1.x) | stargatetc | hl.dll | hl.so |
| StargateTC (atualizado, 2.x) | stargatetc | hl.dll | stc.so |
| StargateTC (atualizado, 2.x) | stargatetc | hl.dll | stc_i386_opt.so |
| Sven Coop (antigo) | svencoop | hl.dll | hl.so |
| Sven Coop (Steam) | svencoop | server.dll | server.so |
| Swarm | swarm | swarm.dll | swarm.so |
| Team Fortress Classic | tfc | tfc.dll | tfc.so |
| The Wastes | thewastes | thewastes.dll | thewastes.so |
| Project Timeless | timeless | timeless.dll | pt.so |
| Tour of Duty | tod | hl.dll | hl.so |
| Train Hunters | trainhunters | th.dll | th.so |
| The Specialists | ts | mp.dll | ts.so |
| The Trenches | tt | tt.dll | tt.so |
| Underworld Bloodline | underworld | uw.dll | uw.so |
| Half-Life | valve | hl.dll | hl.so |
| VampireSlayer | vs | mp.dll | vs.so |
| Wanted! | wantedhl | wanted.dll | hl.so |
| Wizard Wars (Steam) | wizardwars | wizardwars.dll | wizardwars.so |
| Wizard Wars Beta (Steam) | wizardwars_beta | wizardwars.dll | wizardwars.so |
| Wizard Wars (antigo) | wizwars | mp.so | hl.dll |
| WormsHL | wormshl | wormshl.dll | wormshl.so |
| Zombie Panic | zp | mp.dll | hl.so |
Toda ajuda e contribuição ao projeto é bem-vinda. Quanto mais testes e retorno, mais forte fica o desenvolvimento do Metamod-r e dos outros produtos relacionados. Boa sorte!



