[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian sid, PHP cli, xdebug, set_error_handler, mysql_list_dbs, throw = Segmentation fault



On 17.03.2013 23:40, Jerry Stuckle wrote:
> On 3/17/2013 2:54 PM, Sven Uhlig wrote:
>> On 17.03.2013 16:01, Jerry Stuckle wrote:
>>> On 3/17/2013 9:20 AM, Sven Uhlig wrote:
>>>> The following PHP code exits in "segmentation fault".
>>>>
>>>> <?php
>>>> function error_handler() {
>>>>     throw new Exception;
>>>> }
>>>> set_error_handler('error_handler');
>>>> mysql_list_dbs();
>>>> ?>
>>>>
>>>> No segmentation fault if I do either of these things:
>>>> 1) disable xdebug
>>>> 2) don't set_error_handler
>>>> 3) don't throw exception
>>>> 4) throw exception after mysql_list_dbs but outside of error_handler
>>>>
>>>> $ php -v
>>>> PHP 5.4.4-14 (cli) (built: Mar  4 2013 14:08:43)
>>>> Copyright (c) 1997-2012 The PHP Group
>>>> Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
>>>>       with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans
>>>>
>>>> # uname -a
>>>> Linux baldur 3.2.0-4-amd64 #1 SMP Debian 3.2.39-2 x86_64 GNU/Linux
>>>
>>> Impossible to tell from the (lack of) information you supplied.
>>
>> What do you need?
>>
> Well, if it happened to me, I'd get a dump of the problem, preferably
> with a debug version of the binaries, and a trace leading up to the
> problem.  Then I'd dig in and see where the problem lies.

Because I am no C developer, I have no idea where to look for the cause
of the problem. All I can do is to help someone else fixing the code of
xdebug/php. But I am really not the right person to do this.

Here is the backtrace of gdb after I have installed php5-dbg.

#0  _zend_mm_alloc_int (heap=0xdb92b0, size=32) at
/tmp/buildd/php5-5.4.4/Zend/zend_alloc.c:1906
#1  0x000000000069eeda in zend_error (type=8192, format=0xa77fdf "%s")
at /tmp/buildd/php5-5.4.4/Zend/zend.c:1105
#2  0x000000000063d376 in php_verror (docref=0xdb84c0
"x\255\377\377\377\177",
    params=0x1 <Address 0x1 out of bounds>, type=8192, format=0x1
<Address 0x1 out of bounds>, args=0x1)
    at /tmp/buildd/php5-5.4.4/main/main.c:853
#3  0x000000000063d79e in php_error_docref0 (docref=0xdb92b0 "\001",
type=32,
    format=0x1 <Address 0x1 out of bounds>) at
/tmp/buildd/php5-5.4.4/main/main.c:865
#4  0x00007ffff45f86e1 in ?? () from /usr/lib/php5/20100525/mysql.so
#5  0x00007ffff4a2aedc in xdebug_execute_internal
(current_execute_data=0x7ffff4f26060, return_value_used=0)
    at /srv/debian_developer/xdebug/xdebug-2.2.1/build-php5/xdebug.c:1483
#6  0x0000000000746a3e in zend_do_fcall_common_helper_SPEC
(execute_data=0x7ffff4f26060)
    at /tmp/buildd/php5-5.4.4/Zend/zend_vm_execute.h:644
#7  0x0000000000700447 in execute (op_array=0x7ffff4f592f0) at
/tmp/buildd/php5-5.4.4/Zend/zend_vm_execute.h:410
#8  0x00007ffff4a2aa81 in xdebug_execute (op_array=0x7ffff4f592f0)
    at /srv/debian_developer/xdebug/xdebug-2.2.1/build-php5/xdebug.c:1391
#9  0x00000000006a028e in zend_execute_scripts (type=8,
retval=0x7ffff4f592b8, file_count=3)
    at /tmp/buildd/php5-5.4.4/Zend/zend.c:1279
#10 0x000000000063f863 in php_execute_script (primary_file=0x7ffff5b44ec0)
    at /tmp/buildd/php5-5.4.4/main/main.c:2473
#11 0x00000000007491b3 in do_cli (argc=0, argv=0x7fffffffe8f1) at
/tmp/buildd/php5-5.4.4/sapi/cli/php_cli.c:988
#12 0x000000000043110a in main (argc=32767, argv=0xdb9210) at
/tmp/buildd/php5-5.4.4/sapi/cli/php_cli.c:1361


Sven.


Reply to: