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

- Raphael

Am Do., 7. März 2019 um 19:20 Uhr schrieb Ben Ruthig <brut...@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 <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

Reply via email to