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~~
 +