Well I believe that I have the solution to the core dumping during the C library wrap-up. If I link the top-level executable, in this case either /usr/bin/php or httpd with the C++ compiler as the front end to the linker, the segfault problem goes away.

I guess this should have been obvious . . .

Bruce

-----Original Message-----
From: Bruce Bailey [mailto:[EMAIL PROTECTED]
Sent: Tuesday, July 29, 2003 9:52 AM
To: Bruce Bailey
Subject: PHP dumps core loading extension - more information


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" <[EMAIL PROTECTED]>
> >To: [EMAIL PROTECTED]
> >Subject: [PHP-DEV] PHP dumps core loading extension
> >Date: Fri, 25 Jul 2003 10:55:50 -0700
> >
> >I 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. My phpinfo()
> >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)

_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963



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



Reply via email to