---- ohaya@cox.net wrote: > Hi, > > Now that I've gotten by earlier problems with the module I'm working on (see thread "Re: UNSOLVED was Re: SOLVED was Re: How to compiling/link/use Apache module that uses shared library?"), I am trying to get my module to work with the stuff in that libobaccess.so. This .so is part of Oracle's Access Server SDK (ASDK). > > The problem I'm running into now is that there's an initialization call in the library that I need to make, ObConfig_initialize() that is suppose to initialize the SDK environment, but when I call that (it takes either NULL or a const * char as parameter), it's blowing up (Apache aborts). > > I *think* that the problem is that the libobaccess.so is actually C++, with a bunch of wrapper-type C functions to wrap the C++ functions, i.e., so my module (which is C) calls a function, and inside obaccess.so the function calls a C++ function)., and it's probably blowing up because the Oracle code doesn't know anything about Pool memory, but rather uses C++ new, etc. > > Here's a gdb backtrace showing this: > > In callAccessGate()... > > > In callAccessGate(): About to set handler... > > In callAccessGate(): returned from set handler > > > In callAccessGate(): About to call ObConfig_initialize()... > > Program received signal SIGABRT, Aborted. > [Switching to Thread 182897612000 (LWP 15573)] > 0x000000351432e26d in raise () from /lib64/tls/libc.so.6 > (gdb) bt full > #0 0x000000351432e26d in raise () from /lib64/tls/libc.so.6 > No symbol table info available. > #1 0x000000351432fa6e in abort () from /lib64/tls/libc.so.6 > No symbol table info available. > #2 0x000000351a7b1148 in __gnu_cxx::__verbose_terminate_handler () from /lib64/libstdc++.so.6 > No symbol table info available. > #3 0x000000351a7af176 in __cxa_call_unexpected () from /lib64/libstdc++.so.6 > No symbol table info available. > #4 0x000000351a7af1a3 in std::terminate () from /lib64/libstdc++.so.6 > No symbol table info available. > #5 0x000000351a7af2a3 in __cxa_throw () from /lib64/libstdc++.so.6 > No symbol table info available. > #6 0x0000002a97898a05 in ObThreadInitNLS () from /apps/netpoint/lib64/libobaccess.so > No symbol table info available. > #7 0x0000002a97898f75 in SetGlobalInTLS () from /apps/netpoint/lib64/libobaccess.so > No symbol table info available. > #8 0x0000002a9789913f in GetGlobalFromTLS () from /apps/netpoint/lib64/libobaccess.so > No symbol table info available. > #9 0x0000002a97899edc in NLS::NLS () from /apps/netpoint/lib64/libobaccess.so > No symbol table info available. > #10 0x0000002a9773f1b1 in ObConfig::initialize () from /apps/netpoint/lib64/libobaccess.so > No symbol table info available. > #11 0x0000002a976ee55d in ObConfig_initialize () from /apps/netpoint/lib64/libobaccess.so > ---Type to continue, or q to quit--- > No symbol table info available. > #12 0x0000002a97b94266 in callAccessGate ( > PEM=0x706850 "MIICrTCCAhagAwIBAgICECUwDQYJKoZIhvcNAQEEBQAwgZMxCzAJBgNVBAYTAlVT\nMQswCQYDVQQIEwJWQTEPMA0GA1UEBxMGT0FLVE9OMRMwEQYDVQQKEwpKTFNpbXBs\nZUNBMRIwEAYDVQQLEwlKTERlbW8gQ0ExGzAZBgNVBAMTEkpMU2ltcGxlQ0EgRGVt\nbyBDQ"..., > url=0x2a97b956b0 "//apache1/certprotected/index.html") at mod_headers.c:847 > res = Variable "res" is not available. > (gdb) > > So, my code calls ObConfig_initialize() then it appears that that calls ObConfig_initialize() which is presumably a C++ function. > > In general, is there any way to handle this problem/situation if it's memory allocation (inside libobaccess.so) related? > > Thanks, > Jim Sorry. I meant to say: "So, my code calls ObConfig_initialize() then it appears that that calls ObConfig::initialize() which is presumably a C++ function. " Jim