Went to the Tribeca Film Festival with Carter, but didn't get into any of the movies. Figures.
After debugging in the background over several days and about a dozen emails back and forth with tech support, the allocation conflict I have been trying to isolate turned out to be a bug in BoundsChecker where it couldn't tell the difference between
char *foo = new char [num_bytes];
versus
char *foo = new (std::nothrow) char [num_bytes];
It's unfortunate how they weren't very helpful in tracking down the issue and I essentially had to do all the work myself. It's a bitch to try to figure out why a commercial product is misbehaving because you can't just look at the source code.
I am hoping they can give me a fix. The downside is that this means the heap corruption I was trying to track down was a false positive. Argh. Still not making headway fast enough on the bug in Perl that is crashing my win32 process either.