---- oh...@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 <return> to continue, or q <return> 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