box2d-optimized icon indicating copy to clipboard operation
box2d-optimized copied to clipboard

The testbed 'Geometry/Edge Shapes' test crashed frequently.

Open zero-meta opened this issue 3 years ago • 1 comments

When rapidly pressed '1-5' key to drop stuff, It will crashed.

  • Here is the screenshot: Screen Shot 2023-01-06 at 12 10 13
  • Here is the crash report:
    Crashed Thread:        0  Dispatch queue: com.apple.main-thread
    Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
    Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000
    Exception Codes:       0x0000000000000001, 0x0000000000000000
    Exception Note:        EXC_CORPSE_NOTIFY
    
    Termination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11
    Terminating Process:   exc handler [85566]
    
    VM Region Info: 0 is not in any region.  Bytes before following region: 4538880000
          REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL
          UNUSED SPACE AT START
    --->  
          __TEXT                      10e89d000-10ea05000    [ 1440K] r-x/r-x SM=COW  ...nts/*/testbed
    
    Thread 0 Crashed::  Dispatch queue: com.apple.main-thread
    0   testbed                       	       0x10e914c3c b2TreeNode::IsLeaf() const + 12 (b2_broad_phase.h:40)
    1   testbed                       	       0x10e8f574d void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 45 (b2_broad_phase.h:589)
    2   testbed                       	       0x10e8f58ed void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 461 (b2_broad_phase.h:619)
    3   testbed                       	       0x10e8f5846 void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 294 (b2_broad_phase.h:607)
    4   testbed                       	       0x10e8f58ed void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 461 (b2_broad_phase.h:619)
    5   testbed                       	       0x10e8f5846 void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 294 (b2_broad_phase.h:607)
    6   testbed                       	       0x10e8f5846 void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 294 (b2_broad_phase.h:607)
    7   testbed                       	       0x10e8f58ed void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 461 (b2_broad_phase.h:619)
    8   testbed                       	       0x10e8f5846 void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 294 (b2_broad_phase.h:607)
    9   testbed                       	       0x10e8f5846 void b2BroadPhase::QueryAll<b2ContactManager>(b2ContactManager*, b2TreeNode const*, b2TreeNode**, int) const + 294 (b2_broad_phase.h:607)
    10  testbed                       	       0x10e8f475b void b2BroadPhase::UpdateAndQuery<b2ContactManager>(b2ContactManager*) + 1067 (b2_broad_phase.h:324)
    11  testbed                       	       0x10e8f431c b2ContactManager::FindNewContacts() + 28 (b2_contact_manager.cpp:119)
    12  testbed                       	       0x10e910ff8 b2World::Solve(b2TimeStep const&) + 2360 (b2_world.cpp:666)
    13  testbed                       	       0x10e91303e b2World::Step(float, int, int, int) + 478 (b2_world.cpp:1151)
    14  testbed                       	       0x10e8b5b45 Test::Step(Settings&) + 501 (test.cpp:362)
    15  testbed                       	       0x10e8ceeb3 EdgeShapes::Step(Settings&) + 99 (edge_shapes.cpp:207)
    16  testbed                       	       0x10e8a9cca main + 1338 (main.cpp:595)
    17  dyld                          	       0x11954052e start + 462
    
  • Here is the lldb reports:
    * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
        frame #0: 0x000000010008e368 testbed`b2Fixture::RayCast(this=0x0000000130033e31, output=0x00007ff7bfefe260, input=0x00007ff7bfefe3b0) const at b2_fixture.h:385:19
       382   
       383   inline bool b2Fixture::RayCast(b2RayCastOutput* output, const b2RayCastInput& input) const
       384   {
    -> 385     return m_shape->RayCast(output, input, m_body->GetTransform());
       386   }
       387   
       388   inline void b2Fixture::GetMassData(b2MassData* massData) const
    
    * thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x41)
        frame #0: 0x000000010001828c testbed`b2Fixture::GetBody(this=0x0000000000000031) at b2_fixture.h:310:10
       307   
       308   inline b2Body* b2Fixture::GetBody()
       309   {
    -> 310     return m_body;
       311   }
       312   
       313   inline const b2Body* b2Fixture::GetBody() const
    

I tested it many times, and produced many kinds of errors.

zero-meta avatar Jan 06 '23 04:01 zero-meta

Thanks for the detailed report! I’ll see if I can reproduce that (on Linux) and try to fix it

mtsamis avatar Mar 05 '23 09:03 mtsamis