Sanjivendra Nath wrote:

first off you should just start up nsd under gdb instead of attaching to it
then you'd be able to break point in your PBMInterpInit function.


>
> I've adapted pbm/netpbm image manipulation routines as a module for
> AOLServer.
>
> The module loads successfully into AOLserver.
>
> And the tcl commands, such as pbm_new, are also recognized.  Guess that was
> the easy part.
>
> However, I keep getting a segmentation violation, when my script issues a
> command such as...
>
> pbm_new myimg -transparent white -fill white 6 6
> myimg /* this leads to segmentation violation */
>
> Interestingly enough, when the script issues
>
> pbm_new myimg -transparent white -fill white 5 5
>
> myimg /* this doesn't lead to segmentation violation.  Seems like up to 5
> pixels by 5 pixels its ok, but not higher */
>
> After launching the nsd8x executable, and then using gdb to attach to the
> first process, I still am not able to trace the C code because the
> breakpoint even within PBMInterpInit is not reached.
>
> /* this is the initial C code within nspbm.c */
> int
> Ns_ModuleInit(char *hServer, char *hModule)
> {
> return(Ns_TclInitInterps(hServer, PBMInterpInit, NULL));
> }
>
> I do notice that there's 5 threads/processes running (RedHat 7.1 Linux) - so
> perhaps its being serviced through another thread.  Can I limit nsd8x
> startup process to 1 thread, so that I can trap the call within gdb?
>
> Is there a (better) established way to debug C module code within AOLServer?
>
> BTW, can the segmentation violation be occuring because of some malloc
> (which the C code does do) but the AOLserver is running out of heap space?

if it's not some simpler error on your part. there's a good chance
your extension code is not thread safe. you can test that theory by wrapping
all your commands in a mutex. and see if things behave better..


>
> Any guidance is appreciated.
>
> Thanks,
> Sanju.

Reply via email to