Example Debug
Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
example:example_debug [24.04.2017 05:34] admin |
example:example_debug [20.05.2019 15:18] (текущий) |
||
---|---|---|---|
Строка 3: | Строка 3: | ||
echo '<pre>'; var_dump($count_result); echo '</pre>'; | echo '<pre>'; var_dump($count_result); echo '</pre>'; | ||
- | # php вывести массив или объект в файл для дебага ###php ###debug | + | # php вывести массив или объект в файл для дебага ###php ###debug ###debug |
file_put_contents('/tmp/tmp.log',var_export($ticket_status,true), FILE_APPEND); | file_put_contents('/tmp/tmp.log',var_export($ticket_status,true), FILE_APPEND); | ||
- | # php отображать ошибки в файл и на экран на экран ###php ###error ###error_log | + | # php отображать ошибки в файл и на экран на экран ###php ###error ###debug ###error_log |
error_reporting(E_ALL); // E_ALL && !E_WARNING | error_reporting(E_ALL); // E_ALL && !E_WARNING | ||
ini_set('display_errors', 1); | ini_set('display_errors', 1); | ||
Строка 12: | Строка 12: | ||
ini_set('error_log', "/tmp/php-error.log"); | ini_set('error_log', "/tmp/php-error.log"); | ||
- | # php отображать ошибки на экран ###php ###error | + | # php отображать ошибки на экран ###php ###debug ###error |
ini_set('display_errors', true); | ini_set('display_errors', true); | ||
ini_set('error_reporting', E_ALL & ~(E_STRICT|E_NOTICE)); | ini_set('error_reporting', E_ALL & ~(E_STRICT|E_NOTICE)); | ||
Строка 18: | Строка 18: | ||
ini_set('report_memleaks', 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> | </code> | ||
+ | |||
+ | ~~OWNERAPPROVE~~ | ||
+ |