<![CDATA[Latest posts for the topic "Debug PHP bị segfault"]]> /hvaonline/posts/list/24.html JForum - http://www.jforum.net Debug PHP bị segfault kernel: php[27700]: segfault at 0000003455c094fe rip 0000003455c094fe rsp 0000000041a3a0d8 error 14  Trong khi error_log của Apache lại không có gì liên quan. Bạn sẽ bắt đầu debug từ đâu?]]> /hvaonline/posts/list/37772.html#232353 /hvaonline/posts/list/37772.html#232353 GMT Debug PHP bị segfault /hvaonline/posts/list/37772.html#232357 /hvaonline/posts/list/37772.html#232357 GMT Debug PHP bị segfault /hvaonline/posts/list/37772.html#232359 /hvaonline/posts/list/37772.html#232359 GMT Debug PHP bị segfault /hvaonline/posts/list/37772.html#232806 /hvaonline/posts/list/37772.html#232806 GMT Debug PHP bị segfault http://bugs.php.net/bugs-generating-backtrace.php Nhưng điều kiện tiên quyết là phải compile PHP với --enable-debug. Trong khi đó mình lại cài các thứ từ yum, mặc định là --disable-debug. Giống như việc mình thử compile mod_backtrace: Code:
# apxs -ci mod_backtrace.c 
/usr/lib64/apr-1/build/libtool --silent --mode=compile gcc -prefer-pic -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fno-strict-aliasing  -DLINUX=2 -D_REENTRANT -D_GNU_SOURCE -pthread -I/usr/include/httpd  -I/usr/include/apr-1   -I/usr/include/apr-1   -c -o mod_backtrace.lo mod_backtrace.c && touch mod_backtrace.slo
mod_backtrace.c:82: error: expected ')' before '*' token
mod_backtrace.c: In function 'bt_register_hooks':
mod_backtrace.c:159: warning: implicit declaration of function 'ap_hook_fatal_exception'
mod_backtrace.c:159: error: 'bt_exception_hook' undeclared (first use in this function)
mod_backtrace.c:159: error: (Each undeclared identifier is reported only once
mod_backtrace.c:159: error: for each function it appears in.)
apxs:Error: Command failed with rc=65536
Chắc là Apache không được compile với --enable-exception-hook rồi. Giả sử mình không muốn compile lại từ source, đó các bạn biết có cách nào sửa hoặc thêm, bớt các configure options này không? ]]>
/hvaonline/posts/list/37772.html#232813 /hvaonline/posts/list/37772.html#232813 GMT
Debug PHP bị segfault /hvaonline/posts/list/37772.html#232834 /hvaonline/posts/list/37772.html#232834 GMT Debug PHP bị segfault

LeVuHoang wrote:
Đổ ra core file thì có 2 cách đó: 1 là dùng gdb 2 là dùng mod_backtrace như đã nói bên trên dễ dàng hơn Nếu quanta không đủ khả năng can thiệp vào apache như vậy thì có cho ra dump file cũng chỉ đọc để chơi thôi. Tuy nhiên gdb cũng là 1 giải pháp không tồi.  

LeVuHoang wrote:
Nhưng như trên tui đã nói đó, nếu không phải PHP team, chắc coi đến mức biết module nào gây crash là hết cỡ. Lúc đó có muốn disable module đó cũng không được vì nhiều khi website lại cần nó.  
Đúng như lão nói, hiện tại thì tôi cũng chỉ đủ khả năng tìm ra xem module nào bị crash thôi.

LeVuHoang wrote:
Có 1 thời gian tui cũng phải debug php nên có thể recommend cho lão thêm 1 số tool nữa - mod_whatkilledus, cũng phải compile như mod_backtrace - strace  
strace thì tôi có biết và thử trong một số trường hợp bị segfault rồi. Tôi sẽ thử ngâm cứu mod_whatkilledus. Cảm ơn lão.

LeVuHoang wrote:
Còn không dễ nhất như mR.Bi đã nói là tắt từng module và chịu khó mất công vậy.  
Tôi không thích cách này.

LeVuHoang wrote:
1 là tốn công compile, 2 là tốn công ngồi mò. Compile cũng không chịu mà ngồi mò cũng không thì làm sao ra :D.  
Đâu, tôi vẫn chịu compile đấy chứ (nếu cần thiết). Tuy nhiên, tôi vẫn đặt ra câu hỏi để mọi người thảo luận:
Có cách nào chỉnh sửa các configure options của một package cài từ binary không? 

LeVuHoang wrote:
Ngoài ra, lão nên xem những module nào mà web không cần dùng đến disable đi cho nhẹ người. Thông thường cũng chỉ dùng 1 số module căn bản thôi. Mấy cái ZendGuard, IceCube... hay xảy ra mấy tình trạng này. 
OK lão.]]>
/hvaonline/posts/list/37772.html#233497 /hvaonline/posts/list/37772.html#233497 GMT