hanchenye-llvm-project/lldb/source/DataFormatters
Jim Ingham 8d94ba0fb1 This change introduces a "ExpressionExecutionThread" to the ThreadList.
Turns out that most of the code that runs expressions (e.g. the ObjC runtime grubber) on
behalf of the expression parser was using the currently selected thread.  But sometimes,
e.g. when we are evaluating breakpoint conditions/commands, we don't select the thread
we're running on, we instead set the context for the interpreter, and explicitly pass
that to other callers.  That wasn't getting communicated to these utility expressions, so
they would run on some other thread instead, and that could cause a variety of subtle and
hard to reproduce problems.  

I also went through the commands and cleaned up the use of GetSelectedThread.  All those
uses should have been trying the thread in the m_exe_ctx belonging to the command object
first.  It would actually have been pretty hard to get misbehavior in these cases, but for
correctness sake it is good to make this usage consistent.

<rdar://problem/24978569>

llvm-svn: 263326
2016-03-12 02:45:34 +00:00
..
CMakeLists.txt Let Language plugins vend a default DeclPrintingHelper in case a custom one is not specified for the specific invocation 2015-10-19 22:04:25 +00:00
CXXFunctionPointer.cpp Rationalization of includes in the data formatters code 2015-10-20 04:50:09 +00:00
DataVisualization.cpp Reapply r253423 and r253424 (which cleanup the data formatters iteration model, as well as the type X list commands), along with a change by Zachary Turner to bypass a MSVC bug with SFINAE 2015-11-18 19:42:44 +00:00
DumpValueObjectOptions.cpp Fix indentation 2015-11-13 21:37:47 +00:00
FormatCache.cpp Fix a typo in FormatCache.cpp such that the cache would potentially return an invalid format in some cases 2016-02-18 19:23:52 +00:00
FormatClasses.cpp Introduce a FormattersMatchData class which contains all the information that data formatters need in one place, and also allows for lazy computation of expensive chunks of information if need be 2015-10-06 01:02:47 +00:00
FormatManager.cpp Fix a bug where language categories would hold on to their caches even after changes 2015-12-15 02:20:48 +00:00
FormattersHelpers.cpp This change introduces a "ExpressionExecutionThread" to the ThreadList. 2016-03-12 02:45:34 +00:00
LanguageCategory.cpp Fix a bug where language categories would hold on to their caches even after changes 2015-12-15 02:20:48 +00:00
StringPrinter.cpp Fix some compiler warnings with MSVC 2015. 2016-01-13 21:22:00 +00:00
TypeCategory.cpp Add the ability for formatter categories to be bound to one or more languages 2015-09-17 00:14:50 +00:00
TypeCategoryMap.cpp Data formatter support for libc++ std::atomic<T> 2016-02-12 22:18:24 +00:00
TypeFormat.cpp Now that SymbolFileDWARF supports having types in completely separate .pcm file with "-fmodules -gmodules", each SymbolFileDWARF can reference module DWARF info by looking in other DWARF files. Then if you have 1000 .o files that each reference one or more .pcm files in their debug info, a simple Module::FindTypes(...) call can end up searching the same .pcm file over and over and over. Now all internal FindTypes methods in classes (ModuleList, Module, SymbolFile) now take an extra argument: 2016-02-10 21:28:13 +00:00
TypeSummary.cpp Fix TestDataFormatterScript for Linux. 2016-01-29 03:48:08 +00:00
TypeSynthetic.cpp [SBValue] Add a method GetNumChildren(uint32_t max) 2015-10-21 19:28:08 +00:00
TypeValidator.cpp
ValueObjectPrinter.cpp Fix a bug where one-lining display of child values would ignore the user's choice of format 2015-12-01 00:04:52 +00:00
VectorType.cpp Fix Clang-tidy modernize-use-override warnings in some files in source; other minor fixes. 2015-10-26 17:00:13 +00:00