[Bf-committers] VS2012 + Win8 Game engine crash need help with debugging

Jürgen Herrmann shadowrom at me.com
Mon May 6 20:10:08 CEST 2013


Hi there, 

 

I love this debugger! I finally found the place in the code where this nasty exception happens.

But i am once again lost in Blenders internals…

 

This ist the stacktrace:

>             blender.exe!game_engine_exec(bContext * C, wmOperator * op) Zeile 1439 C

               blender.exe!wm_operator_invoke(bContext * C, wmOperatorType * ot, wmEvent * event, PointerRNA * properties, ReportList * reports, short poll_only) Zeile 948        C

               blender.exe!wm_handler_operator_call(bContext * C, ListBase * handlers, wmEventHandler * handler, wmEvent * event, PointerRNA * properties) Zeile 1526              C

               blender.exe!wm_handlers_do_intern(bContext * C, wmEvent * event, ListBase * handlers) Zeile 1794                C

               blender.exe!wm_handlers_do(bContext * C, wmEvent * event, ListBase * handlers) Zeile 1908           C

               blender.exe!wm_event_do_handlers(bContext * C) Zeile 2201             C

               blender.exe!WM_main(bContext * C) Zeile 466             C

               blender.exe!main(int argc, const unsigned char * * UNUSED_argv_c) Zeile 1648            C

               blender.exe!__tmainCRTStartup() Zeile 241      C

               kernel32.dll!BaseThreadInitThunk‑()     Unbekannt

               ntdll.dll!RtlUserThreadStart‑()  Unbekannt

 

This ist he debuggers memory dump for the desired scene data:

-                              ((*C).data).scene           0x0000000000000000 {id={next=??? prev=??? newid=??? ...} adt=??? camera=??? ...}                Scene *

+                             id            {next=??? prev=??? newid=??? ...}        ID

                               adt         <Speicher kann nicht gelesen werden>               

                               camera <Speicher kann nicht gelesen werden>               

                               world    <Speicher kann nicht gelesen werden>               

                               set         <Speicher kann nicht gelesen werden>               

+                             base      {first=??? last=??? }       ListBase

                               basact   <Speicher kann nicht gelesen werden>               

                               obedit  <Speicher kann nicht gelesen werden>               

+                             cursor   0x00000000000000b8 {???, ???, ???}      float[3]

+                             twcent 0x00000000000000c4 {???, ???, ???}       float[3]

+                             twmin   0x00000000000000d0 {???, ???, ???}      float[3]

+                             twmax  0x00000000000000dc {???, ???, ???}      float[3]

                               lay          <Speicher kann nicht gelesen werden>               

                               layact    <Speicher kann nicht gelesen werden>               

                               lay_updated      <Speicher kann nicht gelesen werden>               

                               flag        <Speicher kann nicht gelesen werden>               

                               use_nodes         <Speicher kann nicht gelesen werden>               

                               nodetree            <Speicher kann nicht gelesen werden>               

                               ed          <Speicher kann nicht gelesen werden>               

                               toolsettings       <Speicher kann nicht gelesen werden>               

                               stats      <Speicher kann nicht gelesen werden>               

+                             r              {im_format={imtype=??? depth=??? planes=??? ...} avicodecdata=??? qtcodecdata=??? ...}                RenderData

+                             audio    {mixrate=??? main=??? speed_of_sound=??? ...}          AudioData

+                             markers               {first=??? last=??? }       ListBase

+                             transform_spaces          {first=??? last=??? }       ListBase

                               sound_scene    <Speicher kann nicht gelesen werden>               

                               sound_scene_handle   <Speicher kann nicht gelesen werden>               

                               sound_scrub_handle    <Speicher kann nicht gelesen werden>               

                               speaker_handles            <Speicher kann nicht gelesen werden>               

                               fps_info              <Speicher kann nicht gelesen werden>               

                               theDag <Speicher kann nicht gelesen werden>               

                               dagflags               <Speicher kann nicht gelesen werden>               

                               recalc    <Speicher kann nicht gelesen werden>               

                               active_keyingset             <Speicher kann nicht gelesen werden>               

+                             keyingsets          {first=??? last=??? }       ListBase

+                             framing                {col=0x0000000000000b90 {???, ???, ???} type=??? pad1=??? ...}           GameFraming

+                             gm         {framing={col=0x0000000000000ba0 {???, ???, ???} type=??? pad1=??? ...} playerflag=??? xplay=??? ...}    GameData

+                             unit        {scale_length=??? system=??? system_rotation=??? ...}            UnitSettings

                               gpd        <Speicher kann nicht gelesen werden>               

+                             physics_settings              {gravity=0x0000000000000c68 {???, ???, ???} flag=??? quick_cache_step=??? ...}          PhysicsSettings

                               clip         <Speicher kann nicht gelesen werden>               

                               customdata_mask          <Speicher kann nicht gelesen werden>               

                               customdata_mask_modal          <Speicher kann nicht gelesen werden>               

+                             view_settings   {flag=??? pad=??? view_transform=0x0000000000000ca0 <Fehler beim Lesen der Zeichen der Zeichenfolge.> ...} ColorManagedViewSettings

+                             display_settings              {display_device=0x0000000000000cf8 <Fehler beim Lesen der Zeichen der Zeichenfolge.> }              ColorManagedDisplaySettings

+                             sequencer_colorspace_settings              {name=0x0000000000000d38 <Fehler beim Lesen der Zeichen der Zeichenfolge.> }      ColorManagedColorspaceSettings

                               rigidbody_world              <Speicher kann nicht gelesen werden>               

 

As you can see the C.data.scene seems tob e uninitialized.

 

 

I tried to track down the source of this and I must admit that this is a nasty one ;)

It seems that C isn’t properly initialized in context.c line 97:

 

bContext *CTX_create(void)

{

       bContext *C;

       

       C = MEM_callocN(sizeof(bContext), "bContext");

 

       return C;

}

 

But as always I just might be wrong…

I need some help on this.

 

/Jürgen



More information about the Bf-committers mailing list