| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
This continues the effort to reduce header footprint and improve
build speed by removing clang and other unnecessary headers
from Target.h. In one case, some headers were included solely
for the purpose of declaring a nested class in Target, which was
not needed by anybody outside the class. In this case the
definition and implementation of the nested class were isolated
in the .cpp file so the header could be removed.
llvm-svn: 231107
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is part of a larger effort to reduce header file footprints.
Combined, these patches reduce the build time of LLDB locally by
over 30%. However, they touch many files and make many changes,
so will be submitted in small incremental pieces.
Reviewed By: Greg Clayton
Differential Revision: http://reviews.llvm.org/D8022
llvm-svn: 231097
|
|
|
|
|
|
|
|
| |
operating system plug-ins where we would ask the operating system plug-in to update its threads and this would cause the plugin to run an expression which would eventually run IRForTarget::CreateResultVariable() which would try to get the selected thread and cause re-entrant bug.
<rdar://problem/19924734>
llvm-svn: 230711
|
|
|
|
|
|
|
|
| |
const, there was never a need for lookup_const_result. Now that vestigal
type is gone, so switch LLDB to lookup_result and to use the
DeclContextLookupResult rather than the Const variant.
llvm-svn: 230126
|
|
|
|
|
|
| |
llvm/IR/LegacyPassManager.h
llvm-svn: 229100
|
|
|
|
|
|
|
|
|
|
| |
getting byte sizes from types.
There was a test in the test suite that was triggering the backtrace logging output that requested that the client pass an execution context. Sometimes we need the process for Objective C types because our static notion of the type might not align with the reality when being run in a live runtime.
Switched from an "ExecutionContext *" to an "ExecutionContextScope *" for greater ease of use.
llvm-svn: 228892
|
|
|
|
|
|
|
|
| |
on the value stack.
<rdar://problem/18919125>
llvm-svn: 228729
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class.
Why? Debugger::FormatPrompt() would run through the format prompt every time and parse it and emit it piece by piece. It also did formatting differently depending on which key/value pair it was parsing.
The new code improves on this with the following features:
1 - Allow format strings to be parsed into a FormatEntity::Entry which can contain multiple child FormatEntity::Entry objects. This FormatEntity::Entry is a parsed version of what was previously always done in Debugger::FormatPrompt() so it is more efficient to emit formatted strings using the new parsed FormatEntity::Entry.
2 - Allows errors in format strings to be shown immediately when setting the settings (frame-format, thread-format, disassembly-format
3 - Allows auto completion by implementing a new OptionValueFormatEntity and switching frame-format, thread-format, and disassembly-format settings over to using it.
4 - The FormatEntity::Entry for each of the frame-format, thread-format, disassembly-format settings only replaces the old one if the format parses correctly
5 - Combines all consecutive string values together for efficient output. This means all "${ansi.*}" keys and all desensitized characters like "\n" "\t" "\0721" "\x23" will get combined with their previous strings
6 - ${*.script:} (like "${var.script:mymodule.my_var_function}") have all been switched over to use ${script.*:} "${script.var:mymodule.my_var_function}") to make the format easier to parse as I don't believe anyone was using these format string power user features.
7 - All key values pairs are defined in simple C arrays of entries so it is much easier to add new entries.
These changes pave the way for subsequent modifications where we can modify formats to do more (like control the width of value strings can do more and add more functionality more easily like string formatting to control the width, printf formats and more).
llvm-svn: 228207
|
|
|
|
|
|
|
|
|
|
| |
static bool variables were used but this is not sufficient. We now use std::call_once in all places where the previous static bool code was used to try to implement thread safety.
This was causing code that opened multiple targets to try and get a path to debugserver from the GDB remote communication class, and it would get the LLDB path and some instances would return empty strings and it would cause debugserver to not be found.
<rdar://problem/18756927>
llvm-svn: 227935
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjC types via the runtime
This is necessary because the byte size of an ObjC class type is not reliably statically knowable (e.g. because superclasses sit deep in frameworks that we have no debug info for)
The lack of reliable size info is a problem when trying to freeze-dry an ObjC instance (not the pointer, the pointee)
This commit lays the foundation for having language runtimes help in figuring out byte sizes, and having ClangASTType ask for runtime help
No feature change as no runtime actually implements the logic, and nowhere is an ExecutionContext passed in yet
llvm-svn: 227274
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
MemoryManager anymore, switching to getSymbolAddress, which
it does call, and implementing it so that we once again look up external symbols in the JIT.
Also juked the error reporting from the JIT a little bit.
This resolves:
http://llvm.org/bugs/show_bug.cgi?id=22314
llvm-svn: 227217
|
|
|
|
|
|
| |
iOS and the simulator since llvm/clang will assert and kill LLDB.
llvm-svn: 226846
|
|
|
|
|
|
|
|
| |
name of the iOS simulator platform which was changed
in r181631.
<rdar://problem/19200084>
llvm-svn: 226789
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inferring the function signature. This works well where the ABI doesn't
distinguish between variadic and fixed argument lists, but on arm64 the
calling conventions differ. The default assumption works for fixed argument
lists, but variadic functions require explicit prototypes to be called.
By far the most common case where this is an issue is when attempting to use
printf(). This change augments the default expression prefix to include a
working variadic prototype for the function.
<rdar://problem/19024779>
llvm-svn: 226744
|
|
|
|
| |
llvm-svn: 226180
|
|
|
|
|
|
| |
lldb implementation
llvm-svn: 226162
|
|
|
|
|
|
|
|
|
|
|
| |
MS ABI guard variables end with @4IA, so this patch teaches the
interpreter about that. Additionally, there was an issue with
TurnGuardLoadIntoZero which was causing some guard uses of a
variable to be missed. This fixes that by calling
Instruction::replaceAllUsesWith() instead of trying to replicate
that function.
llvm-svn: 225547
|
|
|
|
|
|
|
|
|
|
|
| |
Objective-C types and enums in modules. We now have
a three-stage fallback when looking for methods and
properties: first the DWARF, second the modules, third
the runtime.
<rdar://problem/18782288>
llvm-svn: 223939
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix PR21802 by correcting the destruction order of
`ClangExpressionParser` and `IRExecutionUnit` in `ClangFunction`. The
former has hooks into the latter -- i.e., `clang::CGDebugInfo` points at
the `LLVMContext` -- so it needs to be torn down first.
This was exposed by r223802 in LLVM, which started doing work in the
`CGDebugInfo` teardown.
llvm-svn: 223916
|
|
|
|
|
|
| |
Patch by Duncan P. N. Exon Smith
llvm-svn: 223844
|
|
|
|
|
|
|
|
|
|
|
|
| |
Such a persisted version is equivalent to evaluating the value via the expression evaluator, and holding on to the $n result of the expression, except this API can be used on SBValues that do not obviously come from an expression (e.g. are the result of a memory lookup)
Expose this via SBValue::Persist() in our public API layer, and ValueObject::Persist() in the lldb_private layer
Includes testcase
Fixes rdar://19136664
llvm-svn: 223711
|
|
|
|
|
|
| |
they are readable.
llvm-svn: 223557
|
|
|
|
|
|
| |
Reviewed by: Sean Callanan
llvm-svn: 223541
|
|
|
|
| |
llvm-svn: 223484
|
|
|
|
|
|
|
| |
will at least be built by non-OS X builders. This
should head off some build breakage at the pass.
llvm-svn: 223437
|
|
|
|
|
|
| |
the types that we find in Clang modules.
llvm-svn: 223436
|
|
|
|
| |
llvm-svn: 223435
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
support to LLDB. It includes the following:
- Changed DeclVendor to TypeVendor.
- Made the ObjCLanguageRuntime provide a DeclVendor
rather than a TypeVendor.
- Changed the consumers of TypeVendors to use
DeclVendors instead.
- Provided a few convenience functions on
ClangASTContext to make that easier.
llvm-svn: 223433
|
|
|
|
|
|
|
|
|
| |
been reverted"
This reverts commit r223375. We need to use unique_ptr to build with
LLVM r223183.
llvm-svn: 223388
|
|
|
|
| |
llvm-svn: 223375
|
|
|
|
|
|
| |
Patch from Ryan Goodfellow.
llvm-svn: 223196
|
|
|
|
|
|
| |
This reverts commit r221073 to match upstream revert in r221711.
llvm-svn: 221749
|
|
|
|
|
|
|
|
|
| |
being asked about symbols it doesn't know about. If
it's asked about a symbol by mangled name and it finds
nothing, then it will try again with the demangled
base name.
llvm-svn: 221660
|
|
|
|
| |
llvm-svn: 221633
|
|
|
|
|
|
| |
recent renaming in clang (clang change for revision 221451). This broke all objective C expressions in LLDB.
llvm-svn: 221632
|
|
|
|
| |
llvm-svn: 221378
|
|
|
|
| |
llvm-svn: 221073
|
|
|
|
|
|
|
|
|
| |
look through 'self' at its ivars. It produces
surprising results.
<rdar://problem/18698760>
llvm-svn: 220220
|
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5849
Reviewed by: Jason Molenda
llvm-svn: 220218
|
|
|
|
|
|
|
|
|
| |
GetValueForVariableExpressionPath returns NULL and
doesn't set an error.
<rdar://problem/18682916>
llvm-svn: 220070
|
|
|
|
|
|
|
|
| |
We have two more uses of mktemp still in the source base
but they'll take a little more consideration.
clang static analyzer fixit.
llvm-svn: 219983
|
|
|
|
|
|
| |
pointer contains something.
llvm-svn: 219966
|
|
|
|
|
|
| |
clang unreachable code warning.
llvm-svn: 219918
|
|
|
|
|
|
| |
clang unreachable code warning.
llvm-svn: 219916
|
|
|
|
|
|
|
| |
as load addreses instead of host addresses.
http://reviews.llvm.org/D5735
llvm-svn: 219896
|
|
|
|
| |
llvm-svn: 219888
|
|
|
|
|
|
|
|
| |
from the previous for() loop - check that it is non-null before trying
to deref it.
clang static analyzer fixit.
llvm-svn: 219887
|
|
|
|
|
|
| |
clang static analyzer fixit.
llvm-svn: 219886
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
do that (RunCommandInterpreter, HandleCommands, HandleCommandsFromFile) to gather
the options into an options class. Also expose that to the SB API's.
Change the way the "-o" options to the lldb driver are processed so:
1) They are run synchronously - didn't really make any sense to run the asynchronously.
2) The stop on error
3) "quit" in one of the -o commands will not quit lldb - not the command interpreter
that was running the -o commands.
I added an entry to the run options to stop-on-crash, but I haven't implemented that yet.
llvm-svn: 219553
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
output style can be customized. Change the built-in default to be
more similar to gdb's disassembly formatting.
The disassembly-format for a gdb-like output is
${addr-file-or-load} <${function.name-without-args}${function.concrete-only-addr-offset-no-padding}>:
The disassembly-format for the lldb style output is
{${function.initial-function}{${module.file.basename}`}{${function.name-without-args}}:\n}{${function.changed}\n{${module.file.basename}`}{${function.name-without-args}}:\n}{${current-pc-arrow} }{${addr-file-or-load}}:
The two backticks in the lldb style formatter triggers the sub-expression evaluation in
CommandInterpreter::PreprocessCommand() so you can't use that one as-is ... changing to
use ' characters instead of ` would work around that.
<rdar://problem/9885398>
llvm-svn: 219544
|