<div dir="ltr">Hello all,<div><br></div><div>I am currently investigating an issue where <span class="gmail-il">LLDB</span> is crashing due to a stack overflow when attempting to evaluate an expression.  I have seen the same issue in 6.0.1 and have reproduced it in 7.0.1.  Any help to diagnose and fix would be greatly appreciated as I am trying to meet a release deadline early next week!</div><div><br></div><div>The facts:</div><div>- The expression being evaluated is not a valid expression in the C++ domain. For example the expression is a datatype like 'Foobar'.  (For reasons unexplained I am constrained to supporting this use case.)</div><div>- The crash occurs when using the C++ <span class="gmail-il">LLDB</span> API but not when trying to evaluate the expression via the <span class="gmail-il">LLDB</span> shell or the <span class="gmail-il">LLDB</span> Python script shell.  However, when doing 'expr Foobar' there is no output and the operation is completely silent.  It is similar when trying to do '<span class="gmail-il">lldb</span>.frame.EvaluateExpression("Foobar")' in the Python shell as well.  I would expect to get some error output or an SbValue in an error state but no such luck.</div><div>- I was able to capture a stack trace (attached) and it seems to be a recursive loop bottoming out.  For brevity two 'loops' of stacktrace are included here:</div><div><br></div><div><div>3387.      liblldb.dll!clang::ASTContext::getASTRecordLayout(const clang::RecordDecl * D) Line 2965    C++</div><div>3388.      liblldb.dll!`anonymous namespace'::EmptySubobjectMap::ComputeEmptySubobjectSizes() Line 216    C++</div><div>3389.      liblldb.dll!`anonymous namespace'::EmptySubobjectMap::EmptySubobjectMap(const clang::ASTContext & Context, const clang::CXXRecordDecl * Class) Line 172    C++</div><div>3390.      liblldb.dll!clang::ASTContext::getASTRecordLayout(const clang::RecordDecl * D) Line 2965    C++</div><div>3391.      liblldb.dll!`anonymous namespace'::EmptySubobjectMap::ComputeEmptySubobjectSizes() Line 216    C++</div><div>3392.      liblldb.dll!`anonymous namespace'::EmptySubobjectMap::EmptySubobjectMap(const clang::ASTContext & Context, const clang::CXXRecordDecl * Class) Line 172    C++</div><div>3393.      liblldb.dll!clang::ASTContext::getASTRecordLayout(const clang::RecordDecl * D) Line 2965    C++</div></div><div><br></div><div>Help please :S</div><div><br></div><div>Thanks,</div><div>Ben</div></div>