[PD-dev] Segfault without messages

Brian Neltner neltnerb at MIT.EDU
Sun Oct 24 02:05:37 CEST 2010


Thanks Claude for your help.

I will personally just be switching to mavg instead of history for now
since I need to be confident it will work. Is there someone I can notify
who maintains the history external who would be interested in knowing
about the bug?

Brian

On Sun, 2010-10-24 at 00:38 +0100, Claude Heiland-Allen wrote:
> On 24/10/10 00:22, Brian Neltner wrote:
> > Thanks for the info Claude,
> >
> > Here is what gdb eventually spit out.
> >
> > I read the documentation page, but I'm afraid I don't really see what I
> > should do from that. Is it trying to do a trace with #0 being the
> > immediate call that crashed, while #1 is what called #0 and #2 called #1
> > and so on? If so, it seems that maxlib history is what is causing the
> > problem.
> 
> Yes, in the absence of symbol information from 'history.pd_linux', I 
> would guess that it is these lines that are the problem:
> 
> http://pure-data.svn.sourceforge.net/viewvc/pure-data/branches/pd-extended/0.42/externals/maxlib/history.c?revision=13589&view=markup#l155
> 
> 155 	 if(++x->x_inpointer > MAX_ARG)
> 156 	{
> 157 	x->x_inpointer = 0;
> 158 	}
> 
> Possibly it should be >= instead of >, otherwise the code might end up 
> reading/writing past the end of the 0-indexed arrays of size MAX_ARG, 
> causing all kinds of memory corruption and random crashes, but I don't 
> suggest making the change without checking whether it is correct - the 
> code doesn't have any comments indicating the data invariants.
> 
> > Sorry, I wish I knew more about programming...
> > Brian
> >
> > On Sat, 2010-10-23 at 21:13 +0100, Claude Heiland-Allen wrote:
> >> On 23/10/10 20:36, Brian Neltner wrote:
> >>> I have attached the offending script.
> >>
> >> Seems quite simple, but I don't have pd-extended and miss the required
> >> libraries to test.
> >>
> >>> pd gui; pd process exited
> >>> Segmentation Fault
> >>>
> >>> Not very useful...
> >>
> >> You could try 'gdb' or 'valgrind' to get more useful output.
> >>
> >> $ gdb --args pd-extended blah blah
> >>   >  run
> >> Segmentation Fault
> >>   >  bt
> >> (tells you where the error is, hopefully)
> >>   >  quit
> >> $
> >>
> >> See also:
> >>
> >> http://puredata.info/docs/developer/DebuggingPdExternals
> >>
> >>
> >> Claude
> >
> 
> 
> Claude





More information about the Pd-dev mailing list