Boost logo

Boost :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-10-29 04:32:23


Ashok Thirumurthi wrote:
> Dear Boost,
>
> The following call stack leads to an access violation when I link a VC 7.1 DLL
> to the release build of the boost signals 1_33_0 DLL. In comparison,
> there is no access violation when I link to the debug build of the same
> library. Similarly, when I add the signals source to my own release
> DLL, there is no access violation. I attempted to disable all compiler
> optimizations in msvc.jam as follows. However, after running bjam -a
> in signals\build and installing the output, the AV still occurs.

You were commenting out BBv2 code. Boost.Signals is being build with
BBv1 (if you were building it from the boost root), use "bjam -a --v2"
to build with BBv2. Also, you can use:

    bjam -a --v2 optimization=off

to turn off the optimization?

> How can I alter the release build to avoid the access violation?
>
> Access violation reading location 0x00000004
> (*((k2).content)).__vfptr is 0x00000000
>
> bool operator()(const any& k1, const any& k2) const
> {
> if (k1.type() == typeid(front_type))
> return !(k2.type() == typeid(front_type));
> if (k1.type() == typeid(back_type))
> return false;
>
>> if (k2.type() == typeid(front_type))

This looks to be an issue with either Boost.Any or your code. What is
any::type() returning?

Have you made sure that RTTI is enabled for everything (including your
own project -- is there a difference in the vcproj Configurations?)

Are you doing something in the Debug version that is not in the Release
version?

Are you linking with the right variant of the boost libraries? Is there
a conflict with the run-time library being used?

- Reece


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk