On Thu, May 06, 2004 at 04:43:53PM +0200, Leopold Toetsch wrote:
> Nicholas Clark <[EMAIL PROTECTED]> wrote:
> 
> > +$(LIBNCI_SO): $(SRC)/nci_test$(O)
> >     $(LD) $(LD_SHARED) $(LDFLAGS) \
> >         $(LD_OUT)$@ $(SRC)/nci_test$(O)
> 
> Win32 additionally needs the libnci.def thingy. (Except when we put in
> the proposed dll_export macros).

Yes, I could see that that's how the DLL rule on the line below differed.
I wasn't sure how to make a makefile template that could include the def
thingy correctly, and more importantly don't have a Win32 machine to test
on, so didn't try.
(Actually, I was on the tube at the time, so my options were somewhat limited)
> 
> > (gdb) print *obj
> > $1 = {
> >   obj = {
> >     u = {
> >       _b = {
> >         _bufstart = 0x7c0802a6,
>                       ^^^^^^^^^^
> >         _buflen = 3217162232
>                     ^^^^^^^^^^^
> >       },
> >     },
> >     flags = 2415984648,
> >     _pobj_version = 2485256112
>                       ^^^^^^^^^^
> 
> That's not a 'real' object. It's the outcome of some memory destruction.
> Is that before it called into libnci or after?
> 
>   $ parrot -t xxx.pasm
> 
> will it tell you.

     0 loadlib P1, "libnci"     - P1=NULL, 
     3 dlfunc P0, P1, "nci_pi", "pi"    - P0=NULL, P1=ParrotLibrary=PMC(0x200f7f0), , 
       DOD
     8 set I5, 5        - I5=0, 
       DOD
    11 invoke
    12 new P2, 32       - P2=NULL, 
    15 push P2, -66     - P2=PerlArray=PMC(0x200f730), 
    18 push P2, 0       - P2=PerlArray=PMC(0x200f730), 
    21 push P2, 0       - P2=PerlArray=PMC(0x200f730), 
    24 assign P5, P2    - P5=UnManagedStruct=PMC(0x200f748), 
P2=PerlArray=PMC(0x200f730)
    27 set P1, P5[0]    - P1=ParrotLibrary=PMC(0x200f7f0), 
P5=UnManagedStruct=PMC(0x200f748), 
    31 new P0, 22       - P0=NCI=PMC(0x200f760), 
    34 set P0[P1], "it"         - P0=NCI=PMC(0x200f6a0), P1=[??Segmentation fault


I'm not sure how to interpret that trace to work out whether the crash is
before or after the call into libnci.

> Which architecture? 64bit?

Boring 32 bit OS X (so big endian, PPC)

Summary of my perl5 (revision 5 version 8 subversion 4) configuration:
  Platform:
    osname=darwin, osvers=7.3.0, archname=darwin-2level
    uname='darwin wavelan-nat-236.lhouse 7.3.0 darwin kernel version 7.3.0: fri mar 5 
14:22:55 pst 2004; root:xnuxnu-517.3.15.obj~4release_ppc power macintosh powerpc '
    config_args='-Dcc=ccache gcc -Dld=gcc -Ubincompat5005 -Uinstallusrbinperl [EMAIL 
PROTECTED] [EMAIL PROTECTED] -Dinc_version_list= -Dinc_version_list_init=0 
-Dprefix=~/Reference/5.8.4 -Uusethreads -Uuse64bitint -de'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='ccache gcc', ccflags ='-pipe -fno-common -DPERL_DARWIN -no-cpp-precomp 
-fno-strict-aliasing',
    optimize='-Os',
    cppflags='-no-cpp-precomp -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp 
-fno-strict-aliasing'
    ccversion='', gccversion='3.3 20030304 (Apple Computer, Inc. build 1495)', 
gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=8
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags =''
    libpth=/usr/lib
    libs=-ldbm -ldl -lm -lc
    perllibs=-ldl -lm -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=false, libperl=libperl.a
    gnulibc_version=''
  Dynamic Linking:
    dlsrc=dl_dyld.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags=' -bundle -undefined dynamic_lookup'


Characteristics of this binary (from libperl): 
  Compile-time options: USE_LARGE_FILES
  Built under darwin
  Compiled at Apr 21 2004 22:22:46
  %ENV:
    PERL5LIB="/sw/lib/perl5:/sw/lib/perl5"
  @INC:
    /sw/lib/perl5
    /sw/lib/perl5
    /Users/nick/Reference/5.8.4/lib/perl5/5.8.4/darwin-2level
    /Users/nick/Reference/5.8.4/lib/perl5/5.8.4
    /Users/nick/Reference/5.8.4/lib/perl5/site_perl/5.8.4/darwin-2level
    /Users/nick/Reference/5.8.4/lib/perl5/site_perl/5.8.4
    /Users/nick/Reference/5.8.4/lib/perl5/site_perl
    .

Nicholas Clark

Reply via email to