Example Debug
Различия
Здесь показаны различия между двумя версиями данной страницы.
example:example_debug [24.04.2017 05:51] admin |
example:example_debug [20.05.2019 15:18] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | <code bash> | ||
- | # php вывести массив или объект на экран для дебага ###php ###debug | ||
- | echo '<pre>'; var_dump($count_result); echo '</pre>'; | ||
- | # php вывести массив или объект в файл для дебага ###php ###debug ###debug | ||
- | file_put_contents('/tmp/tmp.log',var_export($ticket_status,true), FILE_APPEND); | ||
- | |||
- | # php отображать ошибки в файл и на экран на экран ###php ###error ###debug ###error_log | ||
- | error_reporting(E_ALL); // E_ALL && !E_WARNING | ||
- | ini_set('display_errors', 1); | ||
- | ini_set('log_errors', 1); | ||
- | ini_set('error_log', "/tmp/php-error.log"); | ||
- | |||
- | # php отображать ошибки на экран ###php ###debug ###error | ||
- | ini_set('display_errors', true); | ||
- | ini_set('error_reporting', E_ALL & ~(E_STRICT|E_NOTICE)); | ||
- | ini_set('display_startup_errors', true); | ||
- | ini_set('report_memleaks', true); | ||
- | |||
- | # Как поймать сокет ###debug ###socket | ||
- | ls -l /proc/27395/fd/ | ||
- | 3634137309 | ||
- | cat /proc/net/tcp | grep 3634137309 | ||
- | cat /proc/net/tcp | grep 0100007F:8A8F | ||
- | for d in /proc/[0-9]*; do ll $d/fd | grep 3634137308 && echo $d; done | ||
- | ps aux|grep 21838 | ||
- | |||
- | # oprofile найти кто использует cpu какая функция ###debug ###oprofile | ||
- | yum install oprofile | ||
- | vi /etc/yum.repos.d/CentOS-Debuginfo enabled=1 | ||
- | yum -y install kernel-debuginfo | ||
- | mv /usr/lib/debug/lib/modules/2.6.32-642.1.1.el6.centos.plus.x86_64/ /usr/lib/debug/lib/modules/2.6.32-642.1.1.el6.x86_64/ | ||
- | echo /usr/lib/debug/lib/modules/`uname -r`/vmlinux | ||
- | # | ||
- | echo 0 > /proc/sys/kernel/nmi_watchdog | ||
- | opcontrol --deinit | ||
- | opcontrol --init | ||
- | opcontrol --reset | ||
- | opcontrol --start --vmlinux=/boot/vmlinux # но можно и без --no-vmlinux | ||
- | sleep 10 | ||
- | opcontrol --stop | ||
- | # если баг Failed to open profile device: Device or resource busy, то echo 1 > /proc/sys/kernel/nmi_watchdog, стопаем все KVM виртуалки, echo 0 > /proc/sys/kernel/nmi_watchdog | ||
- | # | ||
- | # отчет по подсистемам | ||
- | opreport | ||
- | opreport -d -l | ||
- | opreport -l -w -p /node/bin 2>&1| head -n 100 | grep flas | ||
- | |||
- | # как найти проблему в ядре см nmi callstack в 4 версии softrouter ядра ищи аналог в 2.6 и или перенеси | ||
- | |||
- | </code> |