Example Debug

# 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 и или перенеси

~~OWNERAPPROVE~~

Ваш комментарий. Вики-синтаксис разрешён: