[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