diff --git a/Troubbleshouting.md b/Troubbleshouting.md index 89aa689..d7c14bd 100644 --- a/Troubbleshouting.md +++ b/Troubbleshouting.md @@ -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: