Re: MOTU AU Examiner
Re: MOTU AU Examiner
- Subject: Re: MOTU AU Examiner
- From: Adrian Pflugshaupt <email@hidden>
- Date: Sun, 2 Apr 2006 20:09:49 +0200
I finally figured it out!
As you were interested in knowing about it, Bill, I'm going to write
what I found out.
I turns out that my plugin had a bug in ProcessScheduledSlice() which
caused it to write to memory after the actual audio buffers.
The weird thing is that it did that in an older version already, but
it obviously never led to a crash and didn't cause the examination to
fail.
So I guess there's probably no way to add a test for this to
auval :)... you would have to allocate memory before and after the
audio buffers and check whether the plugin writes there... Overall
motu's examiner didn't really do a test to detect the problem, it was
just a big coincidence that my plugin caused a crash by hitting some
sensitive data...
What's still puzzling are those messages I get in the examiner:
libMallocDebug[MOTU_AU_Examiner-2500]: frame pointer goes from
bffdaa30 to bfffef90 -- assuming invalid.
They don't seem to have anything to do with the actual crash... and
keep happening even after I removed the enitre GUI & sound processing
from my plug (basically leaving an empty frame...)
n8
Adrian
On 02.04.2006, at 14:38, Adrian Pflugshaupt wrote:
I am currently trying to get a large AU synth to work in Digital
Performer 4.61.
It passes auval just fine, however DP says "AU examination
crashed" while scanning it. (..)
I now conducted extensive tests inside gdb (running DP in gdb). And
things are getting more and more puzzling...
When the DP examiner launches inside gdb, I get the following debug
output:
Starting program: /Applications/MOTU DP4.6 Folder/Digital Performer
4.61/Contents/MacOS/Digital Performer
...
libMallocDebug[MOTU_AU_Examiner-2500]: frame pointer goes from
bffdaa30 to bfffef90 -- assuming invalid.
I added fprintfs to see where stuff starts to go wrong. The first
memory problem appears before my code is actually exectued - inside
AUBase::AUBase, where GlobalScope().Initialize(this,
kAudioUnitScope_Global, 1); is called. From there
AUScope::setNumberOfElements if called and inside that routine the
frame pointer error happens in the line:
mElements.reserve(numElements);
Which is basically just allocating memory for a stl vector if I
understand the CoreAudio sources right. From then on everytime
memory is allocated I am getting the same libMallocDebug output.
These errors only happen in the one Plugin i am trying to fix and
they also don't happen in other hosts, I'm totally clueless now.
Does anyone have any ideas what could be causing this? I tried lots
of compiler different compiler settings, but it just doesn't help :(
I'd be super-greatful for any help, thanks
Adrian
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40pflugshaupt.com
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden