[lldb-dev] Stackoverflow crash when evaluating an invalid expression

Raphael “Teemperor” Isemann via lldb-dev lldb-dev at lists.llvm.org
Mon Dec 9 00:46:57 PST 2019


I don’t think we ever received a reproducer for this that would allow us to investigate this (or write a fix).

- Raphael

> On 8. Dec 2019, at 23:02, Vadim Chugunov via lldb-dev <lldb-dev at lists.llvm.org> wrote:
> 
> Looks like I am hitting the same issue.  Was there a fix checked in for this?
> 
> On Thu, Mar 7, 2019 at 3:05 PM Raphael Isemann via lldb-dev <lldb-dev at lists.llvm.org <mailto:lldb-dev at lists.llvm.org>> wrote:
> You can also dump() the AST to a file on disk if that is easier to
> capture than stderr. See the overload of `dump()` that takes a stream:
> https://clang.llvm.org/doxygen/ASTDumper_8cpp_source.html#l00225 <https://clang.llvm.org/doxygen/ASTDumper_8cpp_source.html#l00225>
> 
> - Raphael
> 
> Am Do., 7. März 2019 um 19:20 Uhr schrieb Ben Ruthig <bruthig at google.com <mailto:bruthig at google.com>>:
> >
> > 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 <teemperor at gmail.com <mailto:teemperor at gmail.com>> wrote:
> >>
> >> Hi Ben,
> >>
> >> I think I already answered this last week:
> >> http://lists.llvm.org/pipermail/lldb-dev/2019-February/014789.html <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 at lists.llvm.org <mailto:lldb-dev at 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 at lists.llvm.org <mailto:lldb-dev at lists.llvm.org>
> >> > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev <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 at lists.llvm.org <mailto:lldb-dev at lists.llvm.org>
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev <https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev>
> _______________________________________________
> lldb-dev mailing list
> lldb-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20191209/65a38b07/attachment-0001.html>


More information about the lldb-dev mailing list