[PD] debugging techniques/tricks for a non-developer?

Matteo Sisti Sette matteosistisette at gmail.com
Sat Nov 3 20:56:30 CET 2007


I use PD quite a lot, and it sometimes happens to me that it crashes. 
Sometimes I have been able to isolate and identify the cause of the crash, 
in which case either it was a known bug or I reported it, or the crash was 
triggered by some errors in my patches that I could fix.

However, there are situations in which I can't even isolate the problem and 
that's scary because if you don't know what conditions trigger the 
bug/issue, you cannot feel sure that it won't happen on-stage just because 
it hasn't happened for a long time lately.....
If PD crashes, I need to know: whether there is or not an error in my patch, 
and if there isn't, how to avoid the crash condition.

So my question is....

Is there some way one can, for instance, figure out some information about 
"where" the crash happened, if not "why"?

For example, once I realized that some patch of mine made PD crash when I 
opened it, but it didn't if I opened it with -noloadbang
So the crash must be provoked by some loadbang, be it because of a PD bug or 
of an error in my patch. However my patch was quite "big" and had  a lot of 
abstractions with a lot of loadbangs so it was impossible to figure out 
which one(s) triggered the patch... and I never did. It just stopped 
In such a situation, would there be any means to figure out at least what 
abstraction contained the "guilty" loadbang? (then it may help or not, 
because there may be 100 instances of that abstraction all around, but it 
would be a starting point)

I guess that, if I had such a thing as Visual C++ and if I were a skilled 
developer and if I were familiar with PD sourcecode, I coud debug  and 
figure out things... but none of these conditions holds true.

I'm interested in any kind of (feasible) trick that can help one get any 
kind of useful information as to what provokes a crash, at least in the case 
one is able to reproduce (if not isolate) it.

In WINDOWS if possible.
(I would like to become familiar with Linux, but hey, let's make one step at 
a time)

By the way, is it very difficult for a newbie to get started with 
recompiling PD's source code? (not only with the abovementioned aim but more 
in general: in a future I would like to learn a bit about its source code 
and even try playing with it) and in this case, running it in some sort of 
debug environment? What would I need?
I do have programming skills, just not in C++ (and I do have a very basic 
knowledge of C++). I usually work only with high-level and interpreted 
languages.... well... PD is one of them!

Thanks in advance

More information about the Pd-list mailing list