Как получить Dump падения HLDS

Сообщения
1,041
Реакции
206
Предупреждения
1
Помог
6 раз(а)
HSCN, любой хостинг имеет функцию запуска в дебаг режиме…
 
  • Нравится
Реакции: HSCN

HSCN

гнилая хуемразь
Сообщения
111
Реакции
5
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
BiZaJe, ох я ж идиот...но постойте, это мне в дебаг режиме сидеть? а если это раз в неделю краш такой?
 
Сообщения
289
Реакции
49
Предупреждения
5
Помог
7 раз(а)
HSCN, а что в дебаг режиме сервер не так работает ? Сиди и лови логи
 
Сообщения
1,041
Реакции
206
Предупреждения
1
Помог
6 раз(а)
HSCN, есть падение, включил дебаг и пока не отловишь не выключаешь
Или для вас слово дебаг страшно звучит?
 

HSCN

гнилая хуемразь
Сообщения
111
Реакции
5
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
BiZaJe, для меня нет, но неспроста же пишут, что включать только в случае крайней необходимости.
и просто лог с сервера нужен будет? там дамп некий просили)
 
Сообщения
1,041
Реакции
206
Предупреждения
1
Помог
6 раз(а)
HSCN, дамп это и есть записанное сообщение о падении
В дебаг режиме как раз и выходит подробное сообщение
Ну это и так понятно, что дебаг только в крайнем случае включать когда надо найти причину падения
Тебя же не заставляют в онли гонять
 
  • Нравится
Реакции: HSCN
Сообщения
2,751
Реакции
3,014
Помог
61 раз(а)
Сервер надо запускать с ключем -debug.
Если в системе установлен gdb,
Если в вашей системе не установлен gdb, то сервер при запуске через ./hlds_run в консоли об этом скажет (при наличии параметра запуска -debug)
C++:
Enabling debug mode
-./hlds_run: 1: gdb: not found
-Please install gdb first.
-goto http://www.gnu.org/software/gdb/
Auto-restarting the server on crash

Console initialized.
 
Сообщения
2,751
Реакции
3,014
Помог
61 раз(а)
Чтобы в Docker контейнере изменить ulimit -c unlimited стандартные способы не подойдут:
(на картинке показан способ с изменением hlds_run файла, который не помогает)
1697079636518.png

Решение:

P.S: Ещё нельзя менять ulimit из под НЕ root пользователя в бОльшую сторону (hard limits) https://askubuntu.com/a/162230, что делает бесполезным изменение hlds_run, запуск сервера из под root не рекомендуется.

Признаком уже изменённого в системе ulimit -c на unlimited может свидетельствовать кривой стандартный hlds_run скрипт.
Код:
Enabling debug mode
-./hlds_run: 125: test: Illegal number: unlimited
Auto-restarting the server on crash

Console initialized.
 
Последнее редактирование:
Сообщения
1,041
Реакции
206
Предупреждения
1
Помог
6 раз(а)
SergeyShorokhov, замечал , что в режиме -debug, dump не проходит через gdb в следствии приходиться в ручную dump вскрывать
 
Сообщения
2,751
Реакции
3,014
Помог
61 раз(а)
BiZaJe,

это зависит от названия файла дампа ядра, настройки операционной системы, в том числе параметра:
/proc/sys/kernel/core_pattern

Который может не совпадать с кодом из скрипта hlds_run:
Bash:
debugcore () {
    # Debugs any core file if DEBUG is set and
    # the exitcode is none 0

    exitcode=$1

    if test $exitcode -ne 0; then
        if test -n "$DEBUG" ; then
            echo "bt" > debug.cmds;
            echo "info locals" >> debug.cmds;
            echo "info sharedlibrary" >> debug.cmds
            echo "info frame" >> debug.cmds;  # works, but gives an error... must be last
            echo "----------------------------------------------" >> $DEBUG_LOG
            echo "CRASH: `date`" >> $DEBUG_LOG
            echo "Start Line: $HL_CMD" >> $DEBUG_LOG

            # check to see if a core was dumped
+            if test -f core ; then
+                CORE="core"
+            elif test -f core.`cat $PID_FILE`; then
+                CORE=core.`cat $PID_FILE`
+            elif test -f "$HL.core" ; then
+                CORE="$HL.core"
            fi
        
+            if test -n "$CORE"; then
                $GDB $HL $CORE -x debug.cmds -batch >> $DEBUG_LOG
            fi
    
            echo "End of crash report" >> $DEBUG_LOG
            echo "----------------------------------------------" >> $DEBUG_LOG
            echo $CRASH_DEBUG_MSG
            rm debug.cmds
        else
            echo "Add \"-debug\" to the $0 command line to generate a debug.log to help with solving this problem"
        fi
    fi
}
Для проверки:
Bash:
cat /proc/sys/kernel/core_pattern
 
Последнее редактирование:
Сообщения
270
Реакции
43
Помог
5 раз(а)
does it look correct my start line? server does not start after adding ulimit -c unlimited &&

nohup: failed to run command 'ulimit': No such file or directory

Код:
#!/bin/sh
#

cd /home/omonas/ReHLDS2

HLDS_PORT=27015

HL="ulimit -c unlimited && ./hlds_run -binary ./hlds_linux -game cstrike +map de_dust2x2 +maxplayers 32 +sys_ticrate 1200 -pingboost 3 +port 27015 +ip server ip +rcon_password devcs -debug -pidfile hlds.18857.pid"
export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH

#$HL

nohup $HL | /usr/bin/cronolog /home/omonas/ReHLDS2/logs/cs.%y%m%d &
#nohup $HL 2>/dev/null 1>/dev/null &
 
Последнее редактирование:

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу