Boost logo

Boost Users :

From: Nicholas Bastin (nick.bastin_at_[hidden])
Date: 2007-09-30 15:36:26


I know I'm probably not going to include enough information in this
email, so please let me know whatever else you need to know. My
Template-Fu is not strong. :-)

I'm having a problem on win64 with boost.signals where I'm getting an
access violation after the first slot in a signal is called (it
happens even if there is only one slot, but also if there are multiple
slots), deep in the bowels of an iterator over std::list. My code
works fine on win32, linux32/64, and solaris32.

So, first off, is anyone using signals on win64, and thus I should
reasonably be expecting them to work? I'm using ICL 9.1p037 with .NET
2003.

The stack trace (lots of info elided from each row, but I can probably
supply it upon request if someone can tell me how to get at it - the
MSVC debugger works in mysterious ways) looks something like this
(builds down):

Context::setup_run (my method)
function_traits_helper<boost::add_pointer...
last_value<void>::operator()()
boost::operator++()
iterator_core_access::increment()
named_slot_map_iterator::increment()
named_slot_map_iterator::init_next_group()
detail::connection_slot_pair,
std::allocator<boost::signals::detail::connection_slot_pair>
>::begin()

(yes, several of them appear to be cut off at the front of the symbol,
I have no idea why). The last begin() is in <list>.

Any ideas on how I can debug this? I'm not expecting someone to
magically say "yes, I've seen this, and do this to fix it", but that'd
be nice too.. :-)

--
Nick

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net