httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stas Bekman <s...@stason.org>
Subject Re: libapreq-1.1 SEGV's on AIX
Date Thu, 05 Jun 2003 02:21:19 GMT
Steven Carter wrote:
> On Wed, 2003-06-04 at 20:57, Stas Bekman wrote:
> 
>>Steven Carter wrote:
>>
>>
>>>>>I'm not sure that I had the right version of gdb or the right core
>>>>>file.  I made sure that I had all of my ducks in a row and got another
>>>>>backtrace:
>>>>
>>>>Well this time the trace is totally different (not in apache domain). This

>>>>time you are missing symbols, arguments in Apache::Request and Perl, you have

>>>>to rebuild Apache::Request with CFLAGS="-g" and perl with -Doptimize='-g'.

>>>>However it's possible that seeing the arguments to:
>>>>
>>>>
>>>>>(gdb)  bt
>>>>>#0  0xd0ad39cc in boot_Apache__Request ()
>>>>>   from
>>>>>/.../dce.ccs.ornl.gov/fs/users/u003/scarter/compile/aix_51/libapreq-1.1/
>>>>>blib/arch/auto/Apache/Request/Request.so
>>>>
>>>>could be enough. So if rebuilding perl is a trouble, try to rebuild apreq
first.
>>>
>>>
>>>I can re-compile perl as well, but it will take a little longer.  I
>>>certainly don't mind, I would like to get this problem solved.
>>
>>May be there is no need for that.
>>
>>
>>>Core was generated by `httpd'.
>>>Program terminated with signal 11, Segmentation fault.
>>>#0  0xd089d9cc in boot_Apache__Request (cv=0x2040e624) at Request.c:887
>>>887     Request.c: A file or directory in the path name does not exist..
>>>        in Request.c
>>
>>weird that it can't find the file, it's right under its nose. what your 
>>Request.c:887 says?
>>
>>I'm not sure whether we are on the same library version, but mine goes:
>>
>>#line 885 "Request.c"
>>
>>     /* End of Initialisation Section */
>>
>>     XSRETURN_YES;
>>}
> 
> 
> My libapreq-1.1/Request/Request.c says:
> 
> 
>   +881  #ifdef __cplusplus
>   +882  extern "C"
>   +883  #endif
>   +884  XS(boot_Apache__Request); /* prototype to pass
> -Wmissing-prototypes */
>   +885  XS(boot_Apache__Request)
>   +886  {
>   +887      dXSARGS;
>   +888      char* file = __FILE__;
>   +889
>   +890      XS_VERSION_BOOTCHECK ;
>   +891
>   
> What file is it looking for?

Oh, that's quite different from mine. So it fails in dXSARGS;, we are slowly 
getting advanced. This expands as:

	dSP; dMARK;	
	dAX; dITEMS

Can you replace:

dXSARGS;

with:

register SV **sp = PL_stack_sp;
register SV **mark = PL_stack_base + POPMARK;
I32 ax = MARK - PL_stack_base + 1;
I32 items = SP - MARK;

in that file (which is the further extension of these 4 macros)

run 'make test' and see where it segfaults now?


__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@stason.org http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


Mime
View raw message