(lldb) bt * thread #1, name = 'physics-for-spe', stop reason = signal SIGSEGV: invalid address (fault address: 0x8) * frame #0: 0x00005555559ec292 physics-for-speed`Eigen::internal::scalar_difference_op::operator(this=0x00007fffffffcb30, a=0x0000000000000008, b=0x00007fffffffccc8)(double const&, double const&) const at BinaryFunctors.h:332:128 frame #1: 0x0000555555a20364 physics-for-speed`Eigen::internal::binary_evaluator, Eigen::Matrix const, Eigen::Matrix const>, Eigen::internal::IndexBased, Eigen::internal::IndexBased, double, double>::coeff(this=0x00007fffffffcb30, index=1) const at CoreEvaluators.h:719:68 frame #2: 0x0000555555a1f0db physics-for-speed`Eigen::DenseCoeffsBase, Eigen::Matrix const, Eigen::Matrix const>, 0>::coeff(this=0x00007fffffffcc00, index=1) const at DenseCoeffsBase.h:144:65 frame #3: 0x0000555555a1ddd8 physics-for-speed`Eigen::MatrixBase, Eigen::Matrix const, Eigen::Matrix const> >::cross_product_return_type, Eigen::Matrix const, Eigen::Matrix const> >::type Eigen::MatrixBase, Eigen::Matrix const, Eigen::Matrix const> >::cross, Eigen::Matrix const, Eigen::Matrix const> >(this=0x00007fffffffcc80, other=0x00007fffffffcca0) const at OrthoMethods.h:46:31 frame #4: 0x0000555555a1c618 physics-for-speed`EPA::getContactInfo(this=0x00007fffffffcfb0, col1=0x0000555556b55880, col2=0x000055555ac0ad60, depth=-1.9224639728155912E-316, triangle=0x00007fffffffcdb0, contact=0x00007fffffffd130) at EPA.cpp:93:45 frame #5: 0x0000555555a1c04c physics-for-speed`EPA::expandPolytope(this=0x00007fffffffcfb0, col1=0x0000555556b55880, col2=0x000055555ac0ad60, simplex=0x00007fffffffcff0, contact=0x00007fffffffd130) at EPA.cpp:25:23 frame #6: 0x0000555555a388e2 physics-for-speed`NarrowPhase::gjk(this=0x00007fffffffd0f4, col1=0x0000555556b55880, col2=0x000055555ac0ad60, contact=0x00007fffffffd130) at NarrowPhase.cpp:23:38 frame #7: 0x00005555559e7f48 physics-for-speed`CollisionSystem::narrowphase(this=0x0000555556b09060) at CollisionSystem.cpp:60:28 frame #8: 0x00005555559e7d68 physics-for-speed`CollisionSystem::handleCollision(this=0x0000555556b09060) at CollisionSystem.cpp:41:14 frame #9: 0x0000555555a47de4 physics-for-speed`Scene::step(this=0x00007fffffffd610, dt=0.01) at Scene.cpp:69:28 frame #10: 0x0000555555aa0f7f physics-for-speed`main at main.cpp:121:17 frame #11: 0x00007ffff7028153 libc.so.6`__libc_start_main + 243 frame #12: 0x00005555559c0bde physics-for-speed`_start + 46 (lldb) frame select 4 frame #4: 0x0000555555a1c618 physics-for-speed`EPA::getContactInfo(this=0x00007fffffffcfb0, col1=0x0000555556b55880, col2=0x000055555ac0ad60, depth=-1.9224639728155912E-316, triangle=0x00007fffffffcdb0, contact=0x00007fffffffd130) at EPA.cpp:93:45 90 Vector3d projection = contact.n * contact.depth; 91 Vector3d p; 92 p[0] = (triangle->b->p - projection).cross(triangle->c->p - projection).norm(); -> 93 p[1] = (triangle->c->p - projection).cross(triangle->a->p - projection).norm(); 94 p[2] = (triangle->a->p - projection).cross(triangle->b->p - projection).norm(); 95 if (p[0] + p[1] + p[2] > 0.0) p /= (p[0] + p[1] + p[2]); 96 contact.p = contact.a->rotation.toRotationMatrix() * p + contact.a->position; (lldb) var (EPA *const) this = 0x00007fffffffcfb0 (CollisionObject *) col1 = 0x0000555556b55880 (CollisionObject *) col2 = 0x000055555ac0ad60 (double) depth = -1.9224639728155912E-316 (std::__cxx11::list >::iterator &) triangle = 0x00007fffffffcdb0: { _M_node = 0x00007fffffffcfc0 } (Contact &) contact = 0x00007fffffffd130: { a = 0x0000555556ac66d0 b = 0x0000555556a80010 n = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0, [1] = -1, [2] = -0) } } } } p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.46654651420909216, [1] = -29.431463956493403, [2] = 0.46719329076140231) } } } } depth = -1.9224639728155912E-316 type = VERTEXFACE } (Eigen::Vector3d) projection = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0, [1] = 1.9224639728155912E-316, [2] = 0) } } } } (Eigen::Vector3d) p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0, [1] = 4.6355707758740209E-310, [2] = 6.9533558072267107E-310) } } } } (lldb) frame select 3 frame #3: 0x0000555555a1ddd8 physics-for-speed`Eigen::MatrixBase, Eigen::Matrix const, Eigen::Matrix const> >::cross_product_return_type, Eigen::Matrix const, Eigen::Matrix const> >::type Eigen::MatrixBase, Eigen::Matrix const, Eigen::Matrix const> >::cross, Eigen::Matrix const, Eigen::Matrix const> >(this=0x00007fffffffcc80, other=0x00007fffffffcca0) const at OrthoMethods.h:46:31 43 return typename cross_product_return_type::type( 44 numext::conj(lhs.coeff(1) * rhs.coeff(2) - lhs.coeff(2) * rhs.coeff(1)), 45 numext::conj(lhs.coeff(2) * rhs.coeff(0) - lhs.coeff(0) * rhs.coeff(2)), -> 46 numext::conj(lhs.coeff(0) * rhs.coeff(1) - lhs.coeff(1) * rhs.coeff(0)) 47 ); 48 } 49 (lldb) var (const Eigen::MatrixBase, const Eigen::Matrix, const Eigen::Matrix > > *const) this = 0x00007fffffffcc80 (const Eigen::MatrixBase, const Eigen::Matrix, const Eigen::Matrix > > &) other = 0x00007fffffffcca0 {} (Eigen::internal::nested_eval, const Eigen::Matrix, const Eigen::Matrix >, 2, Eigen::Matrix >::type) lhs = { m_lhs = 0x00007fffffffcfd8 m_rhs = 0x00007fffffffccc0 m_functor = {} } (Eigen::internal::nested_eval, const Eigen::Matrix, const Eigen::Matrix >, 2, Eigen::Matrix >::type) rhs = { m_lhs = 0x0000000000000000 m_rhs = 0x00007fffffffccc0 m_functor = {} } (lldb) frame select 5 frame #5: 0x0000555555a1c04c physics-for-speed`EPA::expandPolytope(this=0x00007fffffffcfb0, col1=0x0000555556b55880, col2=0x000055555ac0ad60, simplex=0x00007fffffffcff0, contact=0x00007fffffffd130) at EPA.cpp:25:23 22 23 if (d - closest_triangle->distance < m_threshold) { 24 if (col1->obj != 0 && col2->obj != 0) { -> 25 getContactInfo(col1, col2, d, closest_triangle, contact); 26 return true; 27 } 28 return false; (lldb) var (EPA *const) this = 0x00007fffffffcfb0 (CollisionObject *) col1 = 0x0000555556b55880 (CollisionObject *) col2 = 0x000055555ac0ad60 (Simplex &) simplex = 0x00007fffffffcff0: { supportPoints = size=4 { [0] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.33299382438755692, [1] = -1.3189719692291995, [2] = -0.19231234812648365) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.66282338300620336, [1] = -30.915212266967192, [2] = -0.20324647797170814) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } [1] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.090214827156007205, [1] = -0.17546546961512277, [2] = 1.3596431856456357) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.42004438577465364, [1] = -29.771705767353115, [2] = 1.3487090558004111) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } [2] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.29925827595515908, [1] = 1.0567261412781193, [2] = -0.82542735875416895) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.62908598823950523, [1] = -30.65296691491718, [2] = 0.81449329009007587) } } } } } [3] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.3603942291990076, [1] = 1.2264544018162518, [2] = -0.84729364737204271) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.030566516914661446, [1] = -30.822695175455312, [2] = 0.83635957870794964) } } } } } } dir = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 4.4109489588297954, [1] = 1.1349341732783549, [2] = -0.14621478114269304) } } } } } (Contact &) contact = 0x00007fffffffd130: { a = 0x0000555556ac66d0 b = 0x0000555556a80010 n = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0, [1] = -1, [2] = -0) } } } } p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.46654651420909216, [1] = -29.431463956493403, [2] = 0.46719329076140231) } } } } depth = -1.9224639728155912E-316 type = VERTEXFACE } (SupportPoint) a = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.3603942291990076, [1] = 1.2264544018162518, [2] = -0.84729364737204271) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.030566516914661446, [1] = -30.822695175455312, [2] = 0.83635957870794964) } } } } } (SupportPoint) b = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.29925827595515908, [1] = 1.0567261412781193, [2] = -0.82542735875416895) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.62908598823950523, [1] = -30.65296691491718, [2] = 0.81449329009007587) } } } } } (SupportPoint) c = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.090214827156007205, [1] = -0.17546546961512277, [2] = 1.3596431856456357) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.42004438577465364, [1] = -29.771705767353115, [2] = 1.3487090558004111) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } (SupportPoint) d = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.33299382438755692, [1] = -1.3189719692291995, [2] = -0.19231234812648365) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.66282338300620336, [1] = -30.915212266967192, [2] = -0.20324647797170814) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } (int) iter = 5 (std::__cxx11::list >::iterator) closest_triangle = { _M_node = 0x00007fffffffcfc0 } (SupportPoint) p = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.0000018463343002816934, [1] = -0.00000047590106788675257, [2] = 0.000000061181131391987997) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } (double) d = -1.9224639728155912E-316 (lldb) frame select 6 frame #6: 0x0000555555a388e2 physics-for-speed`NarrowPhase::gjk(this=0x00007fffffffd0f4, col1=0x0000555556b55880, col2=0x000055555ac0ad60, contact=0x00007fffffffd130) at NarrowPhase.cpp:23:38 20 else { 21 if (containsOrigin(simplex)) { 22 EPA epa; -> 23 bool ret = epa.expandPolytope(col1, col2, simplex, contact); 24 return ret; 25 } 26 } (lldb) var (NarrowPhase *const) this = 0x00007fffffffd0f4 (CollisionObject *) col1 = 0x0000555556b55880 (CollisionObject *) col2 = 0x000055555ac0ad60 (Contact &) contact = 0x00007fffffffd130: { a = 0x0000555556ac66d0 b = 0x0000555556a80010 n = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0, [1] = -1, [2] = -0) } } } } p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.46654651420909216, [1] = -29.431463956493403, [2] = 0.46719329076140231) } } } } depth = -1.9224639728155912E-316 type = VERTEXFACE } (Simplex) simplex = { supportPoints = size=4 { [0] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.33299382438755692, [1] = -1.3189719692291995, [2] = -0.19231234812648365) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.66282338300620336, [1] = -30.915212266967192, [2] = -0.20324647797170814) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } [1] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.090214827156007205, [1] = -0.17546546961512277, [2] = 1.3596431856456357) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.42004438577465364, [1] = -29.771705767353115, [2] = 1.3487090558004111) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982955861864643, [1] = -29.596240297737992, [2] = -0.010934129845224478) } } } } } [2] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.29925827595515908, [1] = 1.0567261412781193, [2] = -0.82542735875416895) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.62908598823950523, [1] = -30.65296691491718, [2] = 0.81449329009007587) } } } } } [3] = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.3603942291990076, [1] = 1.2264544018162518, [2] = -0.84729364737204271) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.030566516914661446, [1] = -30.822695175455312, [2] = 0.83635957870794964) } } } } } } dir = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 4.4109489588297954, [1] = 1.1349341732783549, [2] = -0.14621478114269304) } } } } } (SupportPoint) supportVertex = { p = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.3603942291990076, [1] = 1.2264544018162518, [2] = -0.84729364737204271) } } } } p_a = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = 0.32982771228434615, [1] = -29.59624077363906, [2] = -0.010934068664093086) } } } } p_b = { Eigen::PlainObjectBase > = { m_storage = { m_data = { array = ([0] = -0.030566516914661446, [1] = -30.822695175455312, [2] = 0.83635957870794964) } } } } } (int) i = 4 (EPA) epa = { m_threshold = 0.001 m_iterations = 50 m_triangles = size=0 {} m_edges = size=0 {} } (bool) ret = true