[PD] outlet_float crashes on windows
Miller Puckette
msp at ucsd.edu
Mon Aug 26 21:11:30 CEST 2013
The code looks good - unfortunately, in these cases I'm usually suspicious that
somewhere else in the code something is causing memory corruption. If you
can get to a linux machine you can try the wonderful 'valgrind' program that
is very god for tracking down bad memory references in C code.
cheers
Miller
On Fri, Aug 23, 2013 at 12:24:14PM +0200, Orm Finnendahl wrote:
> Hi,
>
> trying to compile an external for Windows XP I get a very strange
> error: pd crashes when calling outlet_float on an external outlet
> (even if it isn't connected). The very same code runs well on both OSX
> and Linux (same pd version, but has been running there for several
> years). Bypassing the outlet_floats by sending to dedicated receivers
> in the patch makes everything work as expected without any problems
> (which makes it even stranger as it is a pretty involved external with
> internal dynamic loading and connection of abstractions communicating
> with internal in- and outlets with proxies using outlet_float and such
> internally without any issues).
>
> This is my first attempt with supporting Windows and my setup might be
> screwed up, so I thought I'd ask on the list whether someone has an
> idea how to further investigate into the problem. I'm compiling on a
> virtual machine with XP and latest MinGW. I'm linking against a pd.dll
> of pd-0.43-44 using all header files from that version as well. The
> test is done with a pd of the same version.
>
> Unfortunately I don't know anything about getting a debugger to work
> on Windows. (I remember it was already painful to get it working with
> inspection and breakpoints on my linux machine).
>
> Below are the relevant code snippets of the external.
>
> Any ideas?
>
> --
> Orm
>
> --------------------------------------------------------------
> code snippets:
>
> # typedef:
>
> typedef struct _quograph
> {
> t_object x_ob;
> t_outlet *x_o0;
> t_float x_currtime;
> ...
> } t_quograph;
>
> # instantiation/binding:
>
> static void *quograph_new(t_symbol *s)
> {
> ...
> x->x_o0 = outlet_new(&x->x_ob, &s_list);
> ...
> }
>
> # calling example:
>
> outlet_float(x->x_o0, x->x_currtime);
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
More information about the Pd-list
mailing list