Hey!

> On 26 04 2018, at 20:47, Dmitry Stogov <dmi...@zend.com> wrote:
> 
> Hi Michael,
> 
> 
> I've just tried to run PSI with php-master (32-bit DEBUG build) and got 
> SIGSEGV on the simplest test.
> 
> Use "psi.d/string.psi" and attemt to call psi\strerror(10)
> 
> 
> #0  0xf44916ba in psi_call_frame_parse_args (frame=0xf426c500, 
> execute_data=0x0) at /home/dmitry/php/ext-psi/src/call.c:273
> #1  0xf4494fe7 in psi_context_call (C=0x92dfe90, execute_data=0x0, 
> return_value=0x8fc0144 <HARDCODED_INI+4>, impl=0x9341658)
>    at /home/dmitry/php/ext-psi/src/context.c:250
> #2  0xf4499b44 in psi_ffi_handler (sig=0x92e0fa0, result=0xffff9760, 
> args=0xffff96f0, data=0x9341658)
>    at /home/dmitry/php/ext-psi/src/libffi.c:387
> #3  0xf4467a76 in ffi_closure_SYSV_inner () from /lib/libffi.so.6
> #4  0xf4467eb6 in ffi_closure_SYSV () from /lib/libffi.so.6
> #5  0x08701d21 in ZEND_DO_FCALL_BY_NAME_SPEC_RETVAL_USED_HANDLER () at 
> /home/dmitry/php/php-master/Zend/zend_vm_execute.h:890
> #6  0x0875fd12 in execute_ex (ex=0xf421d020) at 
> /home/dmitry/php/php-master/Zend/zend_vm_execute.h:54819
> #7  0x087643b1 in zend_execute (op_array=0xf426c460, return_value=0x0) at 
> /home/dmitry/php/php-master/Zend/zend_vm_execute.h:59987
> #8  0x086b0d2f in zend_execute_scripts (type=8, retval=0x0, file_count=3) at 
> /home/dmitry/php/php-master/Zend/zend.c:1566
> #9  0x0863cdde in php_execute_script (primary_file=0xffffcbbc) at 
> /home/dmitry/php/php-master/main/main.c:2467
> #10 0x0876676a in do_cli (argc=2, argv=0x90e4850) at 
> /home/dmitry/php/php-master/sapi/cli/php_cli.c:1011
> #11 0x087673b2 in main (argc=2, argv=0x90e4850) at 
> /home/dmitry/php/php-master/sapi/cli/php_cli.c:1404
> 
> execute_data is NULL
> 
> 
> Did you test ext-psi with php-master?
> 

I only test on master, but never tested 32bit :-/
https://travis-ci.org/m6w6/ext-psi/jobs/368760446#L2102

> 
> As I understood, you create libffi callback/closure for each function 
> declared in *.psi file(s).
> 
> And then use it to call a general psi_ffi_handler().
> 
> Why not to call a general function handler in first place (without any ffi 
> magic)?
> 

Let me think about that. It’s my first with libffi/libjit, so maybe I was 
thinking too complicated and took more corners than I had to…

Thanks,
Mike


--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to