Go Back   ZeroC Forums > Help Center

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
  #1 (permalink)  
Old 03-07-2005
Nis Baggesen Nis Baggesen is offline
Registered User
 
 
Join Date: Aug 2004
Location: Aarhus, Denmark
Posts: 112
Problem w. debug assertion after Ice call

I don't know if this belongs in the Bug Reporting area instead of here, or if it is even a porblem with Ice and not with my code, but I thought I might as well present here and see what you could say.

In brief the problem is that when running my program in debug mode (compiled with debug flags and libraries ofcourse) in MSVC++ 7.0, I get a heap check assertion failure after making a Ice call, and as far as I can see it occurs when the program tries to delete a

::IceInternal::Handle< ::IceDelegate::Ice::Object>

Somewhere in the slice generated code.

The full stacktrace (If it is of any help) is

ntdll.dll!7c901230()
ntdll.dll!7c96d208()
ntdll.dll!7c960ae7()
kernel32.dll!7c85e7af()
msvcr70d.dll!_heapchk() Line 104 + 0x10 C
msvcr70d.dll!_CrtCheckMemory() Line 1500 + 0x5 C
msvcr70d.dll!_free_dbg_lk(void * pUserData=0x0f69d2c8, int nBlockUse=0x00000001) Line 1100 + 0x5 C
msvcr70d.dll!_free_dbg(void * pUserData=0x0f69d2c8, int nBlockUse=0x00000001) Line 1070 + 0xd C
msvcr70d.dll!operator delete(void * pUserData=0x0f69d2c8) Line 53 + 0x10 C++
ice20d.dll!std::map<IceInternal::Handle<Ice::Objec t>,int,std::less<IceInternal::Handle<Ice::Object> >,std::allocator<std:air<IceInternal::Handle<Ice ::Object> const ,int> > >::`scalar deleting destructor'() + 0x29 C++
ice20d.dll!IceInternal::BasicStream::WriteEncaps:: ~WriteEncaps() Line 248 + 0x1f C++
ice20d.dll!IceInternal::BasicStream::WriteEncaps:: `scalar deleting destructor'() + 0x16 C++
ice20d.dll!IceInternal::BasicStream::endWriteEncap s() Line 289 + 0x1c C++
ice20d.dll!IceInternal::Outgoing::invoke() Line 109 C++
GameClient.exe!IceDelegateM::GameWorld::GameObject Connection::runScript(const std::basic_string<char,std::char_traits<char>,std: :allocator<char> > & scriptName={...}, const std::vector<IceInternal::Handle<GameWorld::BaseVar iant>,std::allocator<IceInternal::Handle<GameWorld ::BaseVariant> > > & parms={...}, const std::map<std::basic_string<char,std::char_traits<c har>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,st d::allocator<char> >,std::less<std::basic_string<char,std::char_trait s<char>,std::allocator<char> > >,std::allocator<std:air<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std ::allocator<char> > > > > & __context={...}) Line 2529 + 0xe C++
> GameClient.exe!IceProxy::GameWorld::GameObjectConn ection::runScript(const std::basic_string<char,std::char_traits<char>,std: :allocator<char> > & scriptName={...}, const std::vector<IceInternal::Handle<GameWorld::BaseVar iant>,std::allocator<IceInternal::Handle<GameWorld ::BaseVariant> > > & parms={...}, const std::map<std::basic_string<char,std::char_traits<c har>,std::allocator<char> >,std::basic_string<char,std::char_traits<char>,st d::allocator<char> >,std::less<std::basic_string<char,std::char_trait s<char>,std::allocator<char> > >,std::allocator<std:air<std::basic_string<char, std::char_traits<char>,std::allocator<char> > const ,std::basic_string<char,std::char_traits<char>,std ::allocator<char> > > > > & __ctx={...}) Line 1869 + 0x19 C++
GameClient.exe!IceProxy::GameWorld::GameObjectConn ection::runScript(const std::basic_string<char,std::char_traits<char>,std: :allocator<char> > & scriptName={...}, const std::vector<IceInternal::Handle<GameWorld::BaseVar iant>,std::allocator<IceInternal::Handle<GameWorld ::BaseVariant> > > & parms={...}) Line 1857 C++
GameClient.exe!GameObject::requestScript(Utils::St ring functionName={...}, Com::Ptr<Q::VariantCollection> parms={...}, bool blocking=false) Line 1120 + 0x45 C++
GameClient.exe!GameObject::receive(Q::MessagePeer * from=0x00000000, Q::Message * m=0x02378ab0, Q::MessageResult * result=0x02378b70) Line 563 C++
GameClient.exe!Fixture::receive(Q::MessagePeer * from=0x00000000, Q::Message * m=0x02378ab0, Q::MessageResult * result=0x02378b70) Line 307 C++
qgamedev.dll!48014147()
qgamedev.dll!48014d96()
qgamedev.dll!48015f0b()
GameClient.exe!GameObject:nCommand(Utils::String command={...}) Line 746 C++
GameClient.exe!Fixture:nCommand(Utils::String command={...}) Line 311 C++
GameClient.exe!GameObjectPieMenu:nChildButtonRel ease(FrameComponent * child=0x0f69c128, Q::Layer & l={...}, const Maths::Vec2<float> & layerRelative={...}, const Maths::Vec2<float> & screenRelative={...}, unsigned int buttons=0x00000001) Line 79 C++
GameClient.exe!PieComponent:nChildButtonRelease( FrameComponent * child=0x0f69ddb8, Q::Layer & l={...}, const Maths::Vec2<float> & layerRelative={...}, const Maths::Vec2<float> & screenRelative={...}, unsigned int buttons=0x00000001) Line 211 + 0x2c C++
GameClient.exe!FrameComponent:nButtonRelease(Q:: Layer & l={...}, const Maths::Vec2<float> & layerRelative={...}, const Maths::Vec2<float> & screenRelative={...}, unsigned int buttons=0x00000001) Line 201 + 0x2f C++
qserver.dll!44a3fd97()
qserver.dll!44a3db1d()
qserver.dll!44a38c64()
qserver.dll!44a390d5()
QKflow.dll!44152248()
qsys.dll!44003fc0()
qsys.dll!4400436e()
kernel32.dll!7c80b50b()
kernel32.dll!7c825bc4()

The client is being run via the debugger of MSVC++ 7.0 on a Windows XP machine connecting to a server running on a Fedora Core 2 linux machine.

There doesn't appear to be a problem when I don't run the program in debug mode.

mvh

Nis
Reply With Quote
  #2 (permalink)  
Old 03-07-2005
benoit's Avatar
benoit benoit is online now
ZeroC Staff
 
Name: Benoit Foucher
Organization: ZeroC, Inc.
Project: Ice
 
Join Date: Feb 2003
Location: Rennes, France
Posts: 1,533
The first thing to check is that you've correctly built your application with the correct flags but it sounds like you already did check this (/MD for release multi-threaded and linked with ice.lib, /MDd for debug multi-thread and linked iced.lib).

Without more information, I'm afraid it's impossible to say what could be wrong Would it be possible to send us a small self compilable example demonstrating the problem?

Thanks,

Benoit.
Reply With Quote
  #3 (permalink)  
Old 03-07-2005
Nis Baggesen Nis Baggesen is offline
Registered User
 
 
Join Date: Aug 2004
Location: Aarhus, Denmark
Posts: 112
Quote:
Originally Posted by benoit
The first thing to check is that you've correctly built your application with the correct flags but it sounds like you already did check this (/MD for release multi-threaded and linked with ice.lib, /MDd for debug multi-thread and linked iced.lib).
I do use /MDd and link with iced (and iceutild, freezed etc.) for this debug build, so if that is the main concern that shouldn't be the cause.

Quote:
Originally Posted by benoit
Without more information, I'm afraid it's impossible to say what could be wrong Would it be possible to send us a small self compilable example demonstrating the problem?
I don't know how easy it will be to create a standalone example to demonstrate the problem, as I have yet to isolate the cause. And since things have been working fine earlier, I suspect it really isn't a problem in Ice. I just wanted to tell you about it to see if you might have any ideas.

I'll see if I can track some other source of the problem, and otherwise I'll get back to you with a more selfcontained example.

Thanks for the quick reply.

mvh

NHB
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Debug Assertion Failed! ... Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)". ablo_zhou Help Center 1 07-27-2006 05:05 AM
How to debug a icebox service . fan Help Center 1 08-23-2005 11:21 PM
Debug named profiles griffima Help Center 7 10-18-2004 12:59 PM
problem when call another service at start function. damingyipai Bug Reports 2 02-29-2004 08:22 AM
how to debug ice? clren Help Center 2 09-24-2003 10:55 PM


All times are GMT -4. The time now is 05:47 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0
(c) 2008 ZeroC, Inc.