---- oh...@cox.net wrote: > > ---- Joe Lewis <j...@joe-lewis.com> wrote: > > On 6/21/12 6:46 PM, oh...@cox.net wrote: > > > ---- Joe Lewis<j...@joe-lewis.com> wrote: > > >> On 6/21/12 5:49 PM, oh...@cox.net wrote: > > >>> ---- oh...@cox.net wrote: > > >>>> ---- Sorin Manolache<sor...@gmail.com> wrote: > > >>>>> And I forgot to say: run gdb in some sort of environment where you see > > >>>>> your current source code line and a couple of surrounding lines. You > > >>>>> could achieve this with the "list" command, but I prefer running gdb > > >>>>> in > > >>>>> emacs and let emacs do the nice listing of source code in a different > > >>>>> panel. > > >>>>> > > >>>>> S > > >>>> Here's the function from my source. It's the original from > > >>>> mod_headers.c, plus my printf: > > >>>> > > >>>> > > >>>> static int header_post_config(apr_pool_t *pconf, apr_pool_t *plog, > > >>>> apr_pool_t *ptemp, server_rec *s) > > >>>> { > > >>>> printf("In header_post_config\n"); > > >>>> header_ssl_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); > > >>>> return OK; > > >>>> } > > >>>> > > >>>> Jim > > >>> Hi, > > >>> > > >>> I was able to get the segfault to go away. Here's what I had to do: > > >>> > > >>> - Created /etc/ld.so.conf.d/my.conf, and added the directory where my > > >>> libobaccess.so was > > >>> - Run 'ldconfig' to activate. > > >>> - In the apxs command, DON'T include the -L and -l arguments > > >>> > > >>> After that, Apache appears to start ok, without segfault :)!! > > >>> > > >>> Thanks for all of the great help, esp. the suggestion about checking > > >>> "ldconfig -p". I still don't understand why, but I'm just glad that I > > >>> can get past this piece so now I can debug my module :)... > > >>> > > >>> Later, > > >>> Jim > > >> I'm just glad this list is as good as it is! > > >> > > >> FYI, the ldconfig is the dynamic linker control, and those > > >> /etc/ld.so.conf.d files provide additional search directories for the > > >> linker to check in when loading a library. > > >> > > >> Joe > > >> -- > > >> http://www.silverhawk.net/ > > > > > > Hi, > > > > > > Sorry to report, but my earlier report was a "false positive" :)... > > > > > > I forgot that the mod_headers.c that I was doing the earlier testing with > > > had all references to the libobaccess.so removed :(!! > > > > > > So, I'm still stuck with basically the same problem, now, working with my > > > "full" code, with the calls in it: > > > > > > - If I compile with -L and -l, Apache segfaults when it starts > > > > > > - If I compile without -L and -l, then I get "undefined symbol" errors > > > when I try to start Apache, e.g.: > > > > > > [root@apachemodule build-mod_headers]# /apps/httpd2222/bin/apachectl -k > > > start -X > > > httpd: Syntax error on line 84 of /apps/httpd2222/conf/httpd.conf: Cannot > > > load /apps/httpd2222/modules/mod_headers.so into server: > > > /apps/httpd2222/modules/mod_headers.so: undefined symbol: > > > ObResource_isProtected > > > > > > That "ObResource_isProtected" should be a symbol in libobaccess.so, and > > > in fact, if I do "nm --dynamic", I get: > > > > > > [root@apachemodule build-mod_headers]# nm --dynamic > > > /apps/netpoint/lib64/libobaccess.so | grep "ObResource_isProtected" > > > 00000000000a6d80 T ObResource_isProtected > > > [root@apachemodule build-mod_headers]# > > > > > > > > > I'm *assuming* that the reason for the "undefined symbol" error is that > > > libobaccess.so is actually not being loaded, but then when I try to load > > > libobaccess.so, either via -L and -l in the apxs, or using LoadFile in > > > httpd.conf, I get the segfault (same gdb info, BTW). > > > > > > Catch-22? > > > > > > Sorry for the false alarm :(!! > > > > > > Jim > > > > > > > > Not a catch-22. The -L and -l specify linker options when assembling > > the code. The ldconfig is a run-time thing. If you are getting the > > stderr messages, you are making it all the way into your library. I'd > > suggest commenting out the following line and see if you get farther : > > > > header_ssl_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); > > > > That should tell you if the problem is the ssl_var_lookup. > > > > Joe > > -- > > http://www.silverhawk.net/ > > > Hi, > > Thanks for the suggestion. I just tried what you suggested, and got a > segfault when I started Apache with the modified module. > > Jim > >
Hi, As a reminder, here's the gdb with the library loaded: (gdb) b header_post_config Function "header_post_config" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (header_post_config) pending. (gdb) run -d /apps/httpd2222/ -f /apps/httpd2222/conf/httpd.conf Starting program: /apps/httpd2222/bin/httpd -d /apps/httpd2222/ -f /apps/httpd2222/conf/httpd.conf [Thread debugging using libthread_db enabled] [New Thread 182897610272 (LWP 11317)] Breakpoint 2 at 0x2a9751ea90: file mod_headers.c, line 1121. Pending breakpoint "header_post_config" resolved mod_headers-jl V0.09 - start calling OAM API In register_hooks In create_headers_dir_config In create_headers_dir_config In header_cmd In header_inout_cmd In parse_format_tag In parse_misc_string In create_headers_dir_config In header_cmd In header_inout_cmd In parse_format_tag In parse_misc_string [Switching to Thread 182897610272 (LWP 11317)] Breakpoint 2, header_post_config (pconf=0x573138, plog=0x5a52c8, ptemp=0x5a72d8, s=0x59d3a8) at mod_headers.c:1121 1121 printf("In header_post_config\n"); (gdb) n 1120 { (gdb) n 1121 printf("In header_post_config\n"); (gdb) n In header_post_config 1122 header_ssl_lookup = APR_RETRIEVE_OPTIONAL_FN(ssl_var_lookup); (gdb) n 1124 } (gdb) n 0x00000000004360c7 in ap_run_post_config (pconf=0x573138, plog=0x5a52c8, ptemp=0x5a72d8, s=0x59d3a8) at config.c:91 91 AP_IMPLEMENT_HOOK_RUN_ALL(int, post_config, (gdb) n Program received signal SIGSEGV, Segmentation fault. 0x0000003518d6c1e1 in BN_num_bits () from /lib64/libcrypto.so.4 So, it's actually blowing up in "BN_num_bits()" in /lib64/libcrypto.so.4? Jim