[Bf-committers] heap asserts problem when debugging (compiled with vc7 projectfiles, both .Net 2003 and 2005 beta2)

Joseph Gilbert jgilbert at TIGR.org
Mon Jul 18 19:52:12 CEST 2005


erwin at erwincoumans.com wrote:

>
> I'm trying to fix a bug when running 
> www.erwincoumans.com/PhysicsTest.blend
> However using the Visual Studio 7 projectfiles in debug mode (Blender 
> Debug), there is an assert (HEAP related). I verified the obvious 
> mistake: all projects are the same runtime library (all of blender 
> projects are Multithreaded Debug, intern/extern too).
> 2 questions:
> - Can anyone confirm that the debug version of Blender on windows 
> created using the vc7 projectfiles asserts when running 
> www.erwincoumans.com/PhysicsTest.blend (pressing 'p') ?
> - How do the official windows version of blender get build ?
> Thanks,
> Erwin
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at projects.blender.org
> http://projects.blender.org/mailman/listinfo/bf-committers

Its not an error that the projects are linked to the same c runtime 
libraries. If you link multiple versions of the crt to a project you end 
up with mixed symbol definitions and a slew of linker warnings. This is 
the reason the vc7 project was never able to build the game engine or 
the activex plugin.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/lnk4098.asp 
is a nice reference.

To tell you the truth im not exactly sure where your crash is coming 
from the crt is the bottom of the stack trace because its trying to free 
a bad pointer.
I built a fully single threaded crt build of blender and got the same 
crash as the mt crt build but with a different entry point.

Here is the stack trace of a single-threaded debug build:

     ntdll.dll!7c901230()    
     ntdll.dll!7c96c943()    
     ntdll.dll!7c95db9c()    
     ntdll.dll!7c96cd11()    
     ntdll.dll!7c960af8()    
     ntdll.dll!7c9106eb()    
     blender.exe!_heap_alloc_base(unsigned int size=21561344)  Line 212    C
     kernel32.dll!7c85e7af()    
     blender.exe!_CrtIsValidHeapPointer(const void * 
pUserData=0x05497b00)  Line 1807    C
     blender.exe!_free_dbg(void * pUserData=0x05497b00, int 
nBlockUse=1)  Line 1132 + 0x9    C
     blender.exe!operator delete(void * pUserData=0x05497b00)  Line 54 + 
0x10    C++
     blender.exe!std::allocator<SCA_IActuator 
*>::deallocate(SCA_IActuator * * _Ptr=0x05497b00, unsigned int 
__formal=1)  Line 132 + 0x9    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::_Insert_n(std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::iterator _Where={...}, unsigned int 
_Count=2, SCA_IActuator * const & _Val=0x05497b88)  Line 843    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::insert(std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::iterator _Where={...}, 
SCA_IActuator * const & _Val=0x05497b88)  Line 623    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::push_back(SCA_IActuator * const & 
_Val=0x05497b88)  Line 584    C++
     blender.exe!SCA_IObject::AddActuator(SCA_IActuator * 
act=0x05497b88)  Line 117    C++
     blender.exe!BL_ConvertActuators(char * maggiename=0x053c9c54, 
Object * blenderobject=0x0545587c, KX_GameObject * gameobj=0x01597a40, 
SCA_LogicManager * logicmgr=0x0155df38, KX_Scene * scene=0x0155d7f0, 
KX_KetsjiEngine * ketsjiEngine=0x01577bc0, int & executePriority=2, int 
activeLayerBitInfo=3, bool isInActiveLayer=true, RAS_IRenderTools * 
rendertools=0x01555b00, KX_BlenderSceneConverter * 
converter=0x015929f0)  Line 856    C++
 >    blender.exe!BL_ConvertBlenderObjects(Main * maggie=0x053c9c4c, 
const STR_String & scenename={...}, KX_Scene * kxscene=0x0155d7f0, 
KX_KetsjiEngine * ketsjiEngine=0x01577bc0, e_PhysicsEngine 
physics_engine=UseNone, _object * pythondictionary=0x015c4230, 
SCA_IInputDevice * keydev=0x01551bc8, RAS_IRenderTools * 
rendertools=0x01555b00, RAS_ICanvas * canvas=0x01572dd8, 
KX_BlenderSceneConverter * converter=0x015929f0, bool 
alwaysUseExpandFraming=true)  Line 1348 + 0x40    C++
     blender.exe!KX_BlenderSceneConverter::ConvertScene(const STR_String 
& scenename={...}, KX_Scene * destinationscene=0x0155d7f0, _object * 
dictobj=0x015c4230, SCA_IInputDevice * keyinputdev=0x01551bc8, 
RAS_IRenderTools * rendertools=0x01555b00, RAS_ICanvas * 
canvas=0x01572dd8)  Line 268 + 0x3a    C++
     blender.exe!StartKetsjiShell(ScrArea * area=0x053d16b4, char * 
scenename=0x053dd5e6, Main * maggie=0x053c9c4c, int 
always_use_expand_framing=1)  Line 288 + 0x4c    C++
     blender.exe!start_game()  Line 473 + 0x1b    C
     blender.exe!winqreadview3dspace(ScrArea * sa=0x053d16b4, void * 
spacedata=0x053d19f4, BWinEvent * evt=0x0012fdf4)  Line 1513    C
     blender.exe!scrarea_do_winhandle(ScrArea * area=0x053d16b4, 
BWinEvent * evt=0x0012fdf4)  Line 144 + 0x1a    C
     blender.exe!scrarea_dispatch_events(ScrArea * sa=0x053d16b4)  Line 
563 + 0xd    C
     blender.exe!screen_dispatch_events()  Line 1122 + 0x9    C
     blender.exe!screenmain()  Line 1369    C
     blender.exe!main(int argc=1, char * * argv=0x01491b28)  Line 584    C
     blender.exe!mainCRTStartup()  Line 259 + 0x19    C
     kernel32.dll!7c816d4f()    
     ntdll.dll!7c915b4f()    
     kernel32.dll!7c8399f3()

This is the stack trace of the mutlti-threaded crt build:

    >    blender.exe!_free_dbg_lk(void * pUserData=0x02bbaea0, int 
nBlockUse=1)  Line 1154 + 0x3b    C
     blender.exe!_free_dbg(void * pUserData=0x02bbaea0, int 
nBlockUse=1)  Line 1070 + 0xd    C
     blender.exe!operator delete(void * pUserData=0x02bbaea0)  Line 54 + 
0x10    C++
     blender.exe!std::allocator<SCA_IActuator 
*>::deallocate(SCA_IActuator * * _Ptr=0x02bbaea0, unsigned int 
__formal=2)  Line 132 + 0x9    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::_Insert_n(std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::iterator _Where={...}, unsigned int 
_Count=3, SCA_IActuator * const & _Val=0x02c8a028)  Line 843    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::insert(std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::iterator _Where={...}, 
SCA_IActuator * const & _Val=0x02c8a028)  Line 623    C++
     blender.exe!std::vector<SCA_IActuator 
*,std::allocator<SCA_IActuator *> >::push_back(SCA_IActuator * const & 
_Val=0x02c8a028)  Line 584    C++
     blender.exe!SCA_IObject::AddActuator(SCA_IActuator * 
act=0x02c8a028)  Line 117    C++
     blender.exe!BL_ConvertActuators(char * maggiename=0x02bbbfa4, 
Object * blenderobject=0x02c47b74, KX_GameObject * gameobj=0x01595bd8, 
SCA_LogicManager * logicmgr=0x01594138, KX_Scene * scene=0x01593ae0, 
KX_KetsjiEngine * ketsjiEngine=0x01574a88, int & executePriority=3, int 
activeLayerBitInfo=3, bool isInActiveLayer=true, RAS_IRenderTools * 
rendertools=0x0155d3a8, KX_BlenderSceneConverter * 
converter=0x0158adb0)  Line 856    C++
     blender.exe!BL_ConvertBlenderObjects(Main * maggie=0x02bbbf9c, 
const STR_String & scenename={...}, KX_Scene * kxscene=0x01593ae0, 
KX_KetsjiEngine * ketsjiEngine=0x01574a88, e_PhysicsEngine 
physics_engine=UseNone, _object * pythondictionary=0x015c4230, 
SCA_IInputDevice * keydev=0x01564570, RAS_IRenderTools * 
rendertools=0x0155d3a8, RAS_ICanvas * canvas=0x015624a0, 
KX_BlenderSceneConverter * converter=0x0158adb0, bool 
alwaysUseExpandFraming=true)  Line 1348 + 0x40    C++
     blender.exe!KX_BlenderSceneConverter::ConvertScene(const STR_String 
& scenename={...}, KX_Scene * destinationscene=0x01593ae0, _object * 
dictobj=0x015c4230, SCA_IInputDevice * keyinputdev=0x01564570, 
RAS_IRenderTools * rendertools=0x0155d3a8, RAS_ICanvas * 
canvas=0x015624a0)  Line 268 + 0x3a    C++
     blender.exe!StartKetsjiShell(ScrArea * area=0x02bc3a7c, char * 
scenename=0x02bcf9ae, Main * maggie=0x02bbbf9c, int 
always_use_expand_framing=1)  Line 288 + 0x4c    C++
     blender.exe!start_game()  Line 473 + 0x1b    C
     blender.exe!winqreadview3dspace(ScrArea * sa=0x02bc3a7c, void * 
spacedata=0x02bc3dbc, BWinEvent * evt=0x0012fdf4)  Line 1513    C
     blender.exe!scrarea_do_winhandle(ScrArea * area=0x02bc3a7c, 
BWinEvent * evt=0x0012fdf4)  Line 144 + 0x1a    C
     blender.exe!scrarea_dispatch_events(ScrArea * sa=0x02bc3a7c)  Line 
563 + 0xd    C
     blender.exe!screen_dispatch_events()  Line 1122 + 0x9    C
     blender.exe!screenmain()  Line 1369    C
     blender.exe!main(int argc=1, char * * argv=0x01493a58)  Line 584    C
     blender.exe!mainCRTStartup()  Line 259 + 0x19    C
     kernel32.dll!7c816d4f()    
     ntdll.dll!7c915b4f()    
     kernel32.dll!7c8399f3()    




More information about the Bf-committers mailing list