Hey Raphael, Yes, you did advise me to drop a D->dumpColor() call in to getASTRecordLayout(). For frustrating reasons I still haven't been able to capture those logs but when I do I will report back.
Thanks so much for your help and quick response! Ben On Thu, Mar 7, 2019 at 12:56 PM Raphael Isemann <teempe...@gmail.com> wrote: > Hi Ben, > > I think I already answered this last week: > http://lists.llvm.org/pipermail/lldb-dev/2019-February/014789.html > > I don't think you'll get an answer here without posting the > problematic source or giving any more information as I described in my > mail. > > Cheers, > - Raphael > > Am Do., 7. März 2019 um 18:13 Uhr schrieb Ben Ruthig via lldb-dev > <lldb-dev@lists.llvm.org>: > > > > Hello all, > > > > I am currently investigating an issue where LLDB 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! > > > > The facts: > > - 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.) > > - The crash occurs when using the C++ LLDB API but not when trying to > evaluate the expression via the LLDB shell or the LLDB 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 > 'lldb.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. > > - 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: > > > > 3387. liblldb.dll!clang::ASTContext::getASTRecordLayout(const > clang::RecordDecl * D) Line 2965 C++ > > 3388. liblldb.dll!`anonymous > namespace'::EmptySubobjectMap::ComputeEmptySubobjectSizes() Line 216 C++ > > 3389. liblldb.dll!`anonymous > namespace'::EmptySubobjectMap::EmptySubobjectMap(const clang::ASTContext & > Context, const clang::CXXRecordDecl * Class) Line 172 C++ > > 3390. liblldb.dll!clang::ASTContext::getASTRecordLayout(const > clang::RecordDecl * D) Line 2965 C++ > > 3391. liblldb.dll!`anonymous > namespace'::EmptySubobjectMap::ComputeEmptySubobjectSizes() Line 216 C++ > > 3392. liblldb.dll!`anonymous > namespace'::EmptySubobjectMap::EmptySubobjectMap(const clang::ASTContext & > Context, const clang::CXXRecordDecl * Class) Line 172 C++ > > 3393. liblldb.dll!clang::ASTContext::getASTRecordLayout(const > clang::RecordDecl * D) Line 2965 C++ > > > > Help please :S > > > > Thanks, > > Ben > > > > > > _______________________________________________ > > lldb-dev mailing list > > lldb-dev@lists.llvm.org > > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev > -- "Sometimes I've believed as many as six impossible things before breakfast" - Alice in Wonderland
_______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev