[PD] Crasher bug found...

Mathieu Bouchard matju at artengine.ca
Mon Feb 2 03:17:37 CET 2009


On Sun, 1 Feb 2009, Luke Iannini wrote:

> I attached one of the crashlogs as well, which starts at "0 pd 
> 0x00039cbe pd_typedmess + 142 (m_class.c:696)", but note that I also saw 
> the "0 ??? ..." style crash as well that I'm assuming is indicative of 
> corrupted memory?

"0 ???" can mean many things. It can mean that the markers in the code 
(which gdb calls "symbols") are not present, but barring that, it's 
usually that a function pointer has just been used and was wrong (for any 
reason including maybe memory corruption). After #0, it could also be that 
the stack has been corrupted such that the programme doesn't even know 
anymore where it's coming from, but for #0, that's not possible because 
that's not recorded on the stack at that moment.

There are lots of things that can be guessed from which calls are "???" 
and which aren't, and if you have full debugging on, you can also guess 
more things from whether the arguments being passed look sane or not.

If all (or almost all) entries after #0 are "???", then the stack-pointer 
has been corrupted, or the programme is optimised in a way that gdb 
doesn't understand (that's why it's easier to debug with optimisations 
turned off). It could also be a really bad case of stack corruption

Anyway, for this particular case... I think that the problem is a bit 
tricky to find. I could remove all instances of the abstraction except one 
and still get the crash. Then within the abstraction I could remove almost 
everything and still get the crash. In the end, with gdb's "break pd_bind" 
(and "cont" and "p (*x)->s_name->c_name)" I was able to find that it has 
to do with the [template] class registering itself to "".

Something weirder that happened is that I found that there are two symbols 
named "" (empty string) at once. Then I don't know how to go any further 
for now.

I made those attempts using pd 0.40-2.

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801, Montréal, Québec


More information about the Pd-list mailing list