A new discovery . . .
I created a new extension with only one function and it calls a dso library
that also has only one function. So the libraries are:
php --> my new extension --> my new utility library.
the new utility library has only this function:
int function1(void){return 456;}
When I compile and link the library with C, I can run 'phpinfo();' with no
problems. When I use C++ to compile and link, running 'phpinfo();' core
dumps. Gdb reports the same backtrace as listed below. This can't be
right. Outside of the php context, C and C++ co-exist perfectly.
Are there some php-related configuration options that might have bearing on
this? What am I missing?
This doesn't make any sense.
Bruce
I should have thought of including a backtrace before:
(gdb) bt
#0 0x0000030002891c30 in ?? ()
#1 0x000003ff800dd7d0 in exit () from /usr/shlib/libc.so
#2 0x000003ff800dd7d0 in exit () from /usr/shlib/libc.so
Cannot access memory at address 0x20
(gdb)From: "Bruce Bailey" bruce1828@hotmail.com
To: internals@lists.php.net
Subject: [PHP-DEV] PHP dumps core loading extension
Date: Fri, 25 Jul 2003 10:55:50 -0700I hope this is the right place for this type of question. If not, please
let me know a more appropriate forum.I have a PHP extension (written in C) that calls a utility library that I
wrote in C++. For my testing and debugging, I have been trying to
exercise
my code using PHP from the command line ('/usr/bin/php'). For some
reason,
PHP dumps core (segmentation fault) when I try to use any of my
functions.Even if my php script is simply <?php
phpinfo(); ?>. At this point, I'm
not even calling any of my C++ utility functions,
PHP_MINIT_FUNCTION(myext)
and PHP_RINIT_FUNCTION(myext) are essentially no-ops, and
PHP_MINFO_FUNCTION(myext) has only constant asciiz strings. Myphpinfo()
still dumps core.To load my utility library, I have a config.m4 line:
PHP_EVAL_LIBLINE("-L/bjb/lib -lbjbutility")
When I comment out the 'PHP_EVAL_LIBLINE', the
phpinfo()functions works
OK.I have used the C++ utility library for several years, outside of the
context of PHP with no problems, even when calling from a C mainline.Has anyone seen this before?
Any suggestions as to what might be strategy for debugging this?
Where else can I look for information that might be useful?Thanks in advance,
Bruce
Environment information:
Php 4.3.1
Configure Command => './configure' '--target=' '--prefix=/bjb'
'--with-apxs=/bjb/home/www_serv/bin/apxs' '--with-gd' '--with-zlib'
'--with-zlib-dir=/home/jeb/target/bjb' '--with-jpeg'
'--with-jpeg-dir=/home/jeb/target/bjb' '--with-png'
'--with-png-dir=/home/jeb/target/bjb' '--with-freetype'
'--with-freetype-dir=/home/jeb/target/bjb'
'--with-pdflib=/home/jeb/target/bjb' '--with-enable-dba' '--with-cdb'
'--with-dbm'DEC Tru64
cxx -V
DIGITAL C++ V6.1-027 on DIGITAL UNIX V4.0 (Rev. 1229)
The new MSN 8: smart spam protection and 2 months FREE*
http://join.msn.com/?page=features/junkmail