I am trying to debug my custom TCP stack which is running under Linux
OS. Do to some bug in my stack or missing feature I am getting error
following from php.
failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function:
_php_stream_open_wrapper_ex
stream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);
Error condition occurs when stream is assigned NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener. I tried putting debug statements in some
functions which are called on pointers (based on different ops (read /
write / flush operations, etc.), so far I have not hit a function
pointed by wrapper->wops->stream_opener.
Also, if there is any documentation for understanding php source code.
Thanks
Usman
P.S. I know 4.4.7 is old php, but by system is setup with this version
for debugging TCP stack (for some reason)
I am trying to debug my custom TCP stack which is running under Linux
OS. Do to some bug in my stack or missing feature I am getting error
following from php.failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function:
Don't use it, it's not supported anymore.
_php_stream_open_wrapper_ex
stream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);Error condition occurs when stream is assigned
NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener.
Use any of the debuggers available to step into it and see which function is called.
I tried putting debug statements in some
functions which are called on pointers (based on different ops (read /
write / flush operations, etc.), so far I have not hit a function
pointed by wrapper->wops->stream_opener.Also, if there is any documentation for understanding php source code.
Usman
P.S. I know 4.4.7 is old php, but by system is setup with this version
for debugging TCP stack (for some reason)
--
Wbr,
Antony Dovgal
Antony Dovgal wrote:
failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function:
_php_stream_open_wrapper_exstream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);Error condition occurs when stream is assigned
NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener.Use any of the debuggers available to step into it and see which
function is called.
Since PHP is invoked by Apache server, how can I hockup gcc with php ?
is there an easy way to do this ?
Use any of the debuggers available to step into it and see which
function is called.
Since PHP is invoked by Apache server, how can I hockup gcc with php ?
is there an easy way to do this ?
easier way would be to run apache single-process with httpd -X under gdb
or attach to a certain process with gdb -p.
Stanislav Malyshev, Zend Software Architect
stas@zend.com http://www.zend.com/
(408)253-8829 MSN: stas@zend.com
Use any of the debuggers available to step into it and see which
function is called.
Since PHP is invoked by Apache server, how can I hockup gcc with php ?
is there an easy way to do this ?easier way would be to run apache single-process with httpd -X under gdb
or attach to a certain process with gdb -p.
And easiest is to debug with CLI:
gdb --arg php script-to-debug.php
:)
--Jani
failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function
_php_stream_open_wrapper_exstream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);Error condition occurs when stream is assigned
NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener.Use any of the debuggers available to step into it and see which
function is called.
Since PHP is called by apache and error happens right away, is there an
easy way to invoke php under gdb ?
start "apache -X" inside of gdb
failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function
_php_stream_open_wrapper_exstream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);Error condition occurs when stream is assigned
NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener.Use any of the debuggers available to step into it and see which
function is called.
Since PHP is called by apache and error happens right away, is there an
easy way to invoke php under gdb ?--
--
Alexey Zakhlestin
http://blog.milkfarmsoft.com/
I tried running apache -X under gdb, problem was system (prime client)
timeout out. I am trying to run SPECweb, I suppose most of the people on
the list are fimiliar with it.
Anyway I was able to read the code and figure out function called by
(wrapper->wops->stream_opener), through layers of buffering and function
calling. My TCP stack is returning one bytes less from the start, so
http:// 200 is ttp:// 200.
May be it is calling pread to read the data or aio_read (something which
is not implemented in my stack), Is there a documentation which can help
me understand the code flow with less pain ?
Usman
Alexey Zakhlestin wrote:
start "apache -X" inside of gdb
failed to open stream
Which I have traced to file: php-4.4.7/main/streams.c and function
_php_stream_open_wrapper_exstream = wrapper->wops->stream_opener(wrapper, path_to_open,
mode, options ^ REPORT_ERRORS,
opened_path, context STREAMS_REL_CC TSRMLS_CC);Error condition occurs when stream is assigned
NULL
from
wrapper->wops->stream_opener call (see above line). I need some help
figuring out which function is call by pointer
wrapper->wops->stream_opener.Use any of the debuggers available to step into it and see which
function is called.
Since PHP is called by apache and error happens right away, is there an
easy way to invoke php under gdb ?