2
0
mirror of https://github.com/rehlds/metamod-r.git synced 2025-07-21 12:46:20 +03:00

Updated Troubbleshouting (markdown)

STAM 2018-03-12 14:33:14 +03:00
parent b4e266a502
commit 2b705b44c0

@ -17,16 +17,125 @@ Developers will be grateful if the description of the problem be as much detail
This will help for a more thorough analysis and possibly correction of your problems in the future.
***
## Universally
***
## ![](https://i.imgur.com/t23p9tU.png) Windows
### Once metamod-r is installed the server shuts down immediately
## Получение дампов падения HLDS\reHLDS
## ![](https://i.imgur.com/AzhAYR4.png) Linux
![](https://i.imgur.com/vqDiJ67.png) [Источник](https://aghl.ru/forum/viewtopic.php?f=10&t=1441).
`Subsection needs to be expanded`
**Не стоит просто так выкладывать дампы в интернете, так как зачастую в них содержится полная информация о сервере, включая rcon и прочее. Для передачи можно архивировать их с паролем, что полезно ещё тем, что жмутся они весьма хорошо.**
### ![](https://i.imgur.com/t23p9tU.png) Windows
#### С использованием WER (Windows Error Reporting):
* Разрешить WER (отчеты об ошибках):
- До Vista:
- Запустить drwtsn32.exe и выбрать "Full" напротив Crash Dump File. Тут же можно увидеть (или настроить) куда будут складываться дампы.
- На Vista и выше:
- Редактирование реестра, удобный способ от [s1lent](https://github.com/s1lentq):
>
> #### Развернутый и быстрый способ настроить реестр на получение дампов для новичков.
>
> * Настройки:
> - **NAME_APP** - `hlds.exe`
> - имя приложения, которому нужно будет создавать дампы в случае аварийного завершения.
> - **REG_LINK** - `HKLM\Software\Microsoft\Windows\Windows Error Reporting`
> - путь до раздела Windows Error Reporting (Эту настройку скорее всего менять не нужно, думаю во всех Windows пути одинаковые)
> - **DumpType** - `2`
> - `0` - Обычный дамп
> - `1` - Минимальный дамп
> - `2` - Полный дамп
> - DumpCount - `15`
> - количество создаваемых дампов, если в папке количество дампов будет больше указанного значения, то будет удаляться старый дамп для создания нового дампа.
> - **DumpFolder** - `C:\CrashDumps`
> - путь до папки, куда будут складываться дампы.
> - (во избежании всяких проблем не используйте пробелы или кириллицу в путях)
> * Установка:
> - Скачать архив и разархивировать.
> - Запустить add_RegistryDumps.bat
>
> - После записи в реестр вы должны убедиться что у вас включена служба Отчеты об ошибках Windows.
> - Дальше нажать горячую клавишу Windows + R (Windows кнопка находится между ctrl и alt) или можно вызвать cmd.exe или Пуск - Выполнить, сразу после этого нужно ввести gpedit.msc, далее см. скриншот.
>
> `Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Отчеты об ошибок Windows`
>
> ![](https://i.imgur.com/PLQ8mf3.jpg)
>
> * ![](https://i.imgur.com/vqDiJ67.png) [add_RegistryDumps.zip](http://aghl.ru/forum/download/file.php?id=3071)
> * ![](https://i.imgur.com/vqDiJ67.png) [remove_RegistryDumps.zip](http://aghl.ru/forum/download/file.php?id=3536)
>
#### С использованием утилиты userdumps
* Инструкция от _unKn0wn_:
>
> Способ получения дампов посредством утилиты от MicroSoft: ![](https://i.imgur.com/vqDiJ67.png) [UserModeProcessDumper](http://www.microsoft.com/en-us/download/details.aspx?id=4060). Спасибо [Lev](https://github.com/LevShisterov) за настройки.
>
> ##### 1. Инсталяция
> Архив который вы скачали разархивируем (по умолчанию C:\kktools\userdump8.1).
> - Запустите файл setup.exe из каталога:
> - Если вы используете 32-битную ОС Windows XP/2003, то C:\kktools\userdump8.1\x86.
> - Если вы используете 64-битную ОС Windows XP/2003, то C:\kktools\userdump8.1\x64.
> - В окне Мастера установки нажмите на кнопку Далее.
> - (Только для 32-битных ОС) В окне Terminate Mode выберите Disable "Dump on Process Termination" feature и нажмите на кнопку Далее.
>
> ![](https://i.imgur.com/NgjxfPa.png)
>
> - Нажмите на кнопку Готово и дождитесь завершения установки.
> В окне User Mode Process Dump Setup нажмите на кнопку ДА (Если по каким-то причинам вы не знаете как зайти в меню с настройками userdump -вы их всегда сможете найти в Панель управления - Process Dumper).
>
> ##### 2. Добавление приложения
> В открывшемся окне Свойства: User Mode Process Dumper Setup жмём New и добавляем имя нужной нам программы на пример: hlds.exe (расширение -обязательно!) и жмём ОК
>
> ![](https://i.imgur.com/36m9qL1.jpg)
>
> ##### 3. Настройки
> В окне Свойства: User Mode Process Dumper Setup находим созданное только-что правило приложения, выделяем его и жмём кнопку Rules
> В открывшемся окне Process Monitoring Ruless for hlds.exe
> 1. Выберем Use custom rules.
> 2. Если требуется меняем папку для хранения созданных дампов.
> 3. В Exeption Codes выделяем (нажатием ЛКМ) следующие коды: "Access Violation, Overflow, Illegal Instruction, Stack oveflow."
> 4. Выставляем параметр Save Mode в режим Cyclic saving (5 times).
> Должно получится примерно так:
>
> ![](https://i.imgur.com/sio3Aac.jpg)
>
> PS: Рекомендую использовать совместно с Dr Watson с типом дампов "Краткий", т.к. доктор умеет вести логи в текстовом формате, которые дадут возможность отбирать нужные дампы. А userdump будет делать полные дампы.
>
### ![](https://i.imgur.com/AzhAYR4.png) Linux
Сервер надо запускать с ключем **-debug**.
Если в системе установлен gdb, то автоматически в файле `debug.log` будет записываться внятная информация об ошибке. Так что рекомендуется его поставить (команда зависит от используемой системы, на Debian\Ubuntu - это `apt install gdb`). Хотя для создания дампов это не требуется, это фактически обязательно надо сделать при наличии возможности, так как в `debug.log` при этом будет записано место падения, что позволит сразу что-то сказать об ошибке. Получение этой же информации на другой системе из дамп-файла потребует наличия всех бинарников от сервера.
По умолчанию дамп-файл называется `core`, записывается в рабочей папке, и, соответственно, будет перезаписываться. Во избежание, можно добавлять к имени идентификатор процесса:
`echo 1 > /proc/sys/kernel/core_uses_pid`
или складывать дампы в `/tmp`:
`echo /tmp/%e-%t-%p-%c.dmp > /proc/sys/kernel/core_pattern` Больше информации ![](https://i.imgur.com/vqDiJ67.png)[тут](http://man7.org/linux/man-pages/man5/core.5.html).
Запуск без `sudo` (под root, иначе общие настройки системы должны быть выставлены на unlimited):
`ulimit -c unlimited && ./hlds_run -debug ...`
Запуск с `sudo` (под пользователем hlds):
`ulimit -Hc unlimited && sudo -u hlds sh -c "ulimit -Sc unlimited && ./hlds_run -debug ..."`
Проверка запуска из под sudo:
`ulimit -Hc unlimited && sudo -u hlds sh -c "ulimit -Sc unlimited && whoami && ulimit -Sc && ./hlds_run -debug ..."`
выводит имя пользователя под которым произойдет запуск и лимит на создание дампов, после чего запускает сервер.
Для тестирования настроек создания дампов можете использовать специально разработанный модуль: ![](https://i.imgur.com/vqDiJ67.png) [FixItAll](http://aghl.ru/forum/viewtopic.php?f=19&t=1680&p=19549).
***
### Summary table: