- Apr 17, 2013
-
-
Sean Callanan authored
It doesn't use it yet; the next step is to make it use the IRMemoryMap instead of its own conjured-up Memory class. llvm-svn: 179650
-
Sean Callanan authored
Materializer for all expressions that need to run in the target. This includes the following changes: - Removed a bunch of (de-)materialization code from ClangExpressionDeclMap and assumed the presence of a Materializer where we previously had a fallback. - Ensured that an IRMemoryMap is passed into ClangExpressionDeclMap::Materialize(). - Fixed object ownership on LLVMContext; it is now owned by the IRExecutionUnit, since the Module and the ExecutionEngine both depend on its existence. - Fixed a few bugs in IRMemoryMap and the Materializer that showed up during testing. llvm-svn: 179649
-
- Apr 16, 2013
-
-
Sean Callanan authored
to make debugging easier when things go wrong. llvm-svn: 179576
-
- Apr 15, 2013
-
-
Sean Callanan authored
- If an allocation is mirrored between the host and the process, update the host's version before returning a DataExtractor pointing to it. - If anyone attempts to access memory in a process/target that does not have a corresponding allocation, try accessing the memory directly before erroring out. llvm-svn: 179561
-
Sean Callanan authored
Also improved logging and error handling in a few spots in the Materializer. llvm-svn: 179557
-
Sean Callanan authored
that it works in the absence of a process. Codepaths in the Materializer now use the best execution context scope available to them. llvm-svn: 179539
-
- Apr 13, 2013
-
-
Sean Callanan authored
Materializer. llvm-svn: 179445
-
Sean Callanan authored
Materializer use that API when dematerializing variables. llvm-svn: 179443
-
- Apr 12, 2013
-
-
Sean Callanan authored
for variables in the new Materializer. This is much easier now that the ValueObject API is solid. I still have to implement reading bytes into a ValueObject, but committing what I have so far. This code is not yet used, so there will be fixes when I switch the expression parser over to use the new Materializer. llvm-svn: 179416
-
Sean Callanan authored
variables in the Materializer. We don't use this code yet, but will soon once the other materializers are online. llvm-svn: 179390
-
- Apr 11, 2013
-
-
Sean Callanan authored
to the Materializer. Materialization is still done by the ClangExpressionDeclMap; this will be the next thing to move. Also fixed a layout bug that this uncovered. llvm-svn: 179318
-
Sean Callanan authored
parser. <rdar://problem/13631469> llvm-svn: 179304
-
Sylvestre Ledru authored
Example: CMake Error at cmake/modules/LLVMProcessSources.cmake:89 (message): Found unknown source file /llvm-toolchain-3.3~svn179293.cmake/tools/lldb/source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp llvm-svn: 179295
-
Sean Callanan authored
entities with the new Materializer so that it only registers those entities that actually need to be placed in the struct. llvm-svn: 179253
-
Sean Callanan authored
information about each variable that needs to be materialized for an expression to work. The next step is to migrate all materialization code from ClangExpressionDeclMap to Materializer, and to use it for variable materialization. llvm-svn: 179245
-
- Apr 09, 2013
-
-
Sean Callanan authored
doesn't have a corresponding type. <rdar://problem/13596142> llvm-svn: 179130
-
Sean Callanan authored
behalf of the JIT. We don't need it to be writable since we are using special APIs to write into it. <rdar://problem/13599185> llvm-svn: 179077
-
- Apr 05, 2013
-
-
Sean Callanan authored
from IRExecutionUnit into a superclass called IRMemoryMap. IRMemoryMap handles all reading and writing, ensuring that areas are kept track of and memory is properly cached (and deleted). Also fixed several cases where we would simply leak binary data in the target process over time. Now the expression objects explicitly own their IRExecutionUnit and delete it when they go away. This is why I had to modify ClangUserExpression, ClangUtilityFunction, and ClangFunction. As a side effect of this, I am removing the JIT mutex for an IRMemoryMap. If it turns out that we need this mutex, I'll add it in then, but right now it's just adding complexity. This is part of a more general project to make expressions fully reusable. The next step is to make materialization and dematerialization use the IRMemoryMap API rather than writing and reading directly from the process's memory. This will allow the IR interpreter to use the same data, but in the host's memory, without having to use a different set of pointers. llvm-svn: 178832
-
- Apr 03, 2013
-
-
Rafael Espindola authored
This should fix the build breakage caused by the api change in 178663. llvm-svn: 178700
-
rdar://problem/13506727Greg Clayton authored
Symbol table function names should support lookups like symbols with debug info. To fix this I: - Gutted the way FindFunctions is used, there used to be way too much smarts only in the DWARF plug-in - Made it more efficient by chopping the name up once and using simpler queries so that SymbolFile and Symtab plug-ins don't need to do as much - Filter the results at a higher level - Make the lldb_private::Symtab able to chop up C++ mangled names and make as much sense out of them as possible and also be able to search by basename, fullname, method name, and selector name. llvm-svn: 178608
-
- Apr 02, 2013
-
-
Sean Callanan authored
Note: although it is now possible to declare blocks and call them inside the same expression, we do not generate correct block descriptors so these blocks cannot be passed to functions like dispatch_async. <rdar://problem/12578656> llvm-svn: 178509
-
- Mar 30, 2013
-
-
Sean Callanan authored
manipulating the diagnostics engine. <rdar://problem/13508470> llvm-svn: 178399
-
- Mar 29, 2013
-
-
rdar://problem/11730263Greg Clayton authored
PC relative loads are missing disassembly comments when disassembled in a live process. This issue was because some sections, like __TEXT and __DATA in libobjc.A.dylib, were being moved when they were put into the dyld shared cache. This could also affect any other system that slides sections individually. The solution is to keep track of wether the bytes we will disassemble are from an executable file (file address), or from a live process (load address). We now do the right thing based off of this input in all cases. llvm-svn: 178315
-
- Mar 28, 2013
-
-
Jim Ingham authored
llvm-svn: 178204
-
rdar://problem/13521159Greg Clayton authored
LLDB is crashing when logging is enabled from lldb-perf-clang. This has to do with the global destructor chain as the process and its threads are being torn down. All logging channels now make one and only one instance that is kept in a global pointer which is never freed. This guarantees that logging can correctly continue as the process tears itself down. llvm-svn: 178191
-
- Mar 27, 2013
-
-
Sean Callanan authored
LLDB to crash. <rdar://problem/13497915> llvm-svn: 178115
-
Greg Clayton authored
Don't use a "uintptr_t" for the metadata key, use a "void *". This removes all of the casts that were being used and cleans the code up a bit. Also added the ability to dump the metadata. llvm-svn: 178113
-
- Mar 25, 2013
-
-
Sean Callanan authored
went wrong and we tried to get layout information that wasn't there. <rdar://problem/13490170> llvm-svn: 177880
-
- Mar 23, 2013
-
-
Sean Callanan authored
class symbol in the same expression, handle all of them instead of just the first one. <rdar://problem/13440133> llvm-svn: 177794
-
- Mar 21, 2013
-
-
Sean Callanan authored
Clang requires them to have complete types, but we were previously only completing them if they were of tag or Objective-C object types. I have implemented a method on the ASTImporter whose job is to complete a type. It handles not only the cases mentioned above, but also array and atomic types. <rdar://problem/13446777> llvm-svn: 177672
-
- Mar 20, 2013
-
-
Andy Gibbs authored
llvm-svn: 177503
-
Sean Callanan authored
of the data it writes down into the process even if the process doesn't exist. This will allow the IR interpreter to access static data allocated on the expression's behalf. Also cleaned up object ownership in the IRExecutionUnit so that allocations are created into the allocations vector. This avoids needless data copies. <rdar://problem/13424594> llvm-svn: 177456
-
- Mar 19, 2013
-
-
Sean Callanan authored
interpreter. They now have correct values, even when the process is not running. llvm-svn: 177372
-
Sean Callanan authored
and the JITted code are managed by a standalone class that handles memory management itself. I have removed RecordingMemoryManager and ProcessDataAllocator, which filled similar roles and had confusing ownership, with a common class called IRExecutionUnit. The IRExecutionUnit manages all allocations ever made for an expression and frees them when it goes away. It also contains the code generator and can vend the Module for an expression to other clases. The end goal here is to make the output of the expression parser re-usable; that is, to avoid re-parsing when re-parsing isn't necessary. I've also cleaned up some code and used weak pointers in more places. Please let me know if you see any leaks; I checked myself as well but I might have missed a case. llvm-svn: 177364
-
- Mar 14, 2013
-
-
rdar://problem/13421412Greg Clayton authored
Many "byte size" members and variables were using a mixture of uint32_t and size_t. Switching over to using uint64_t everywhere. llvm-svn: 177091
-
Sean Callanan authored
when clang asked for them by name. llvm-svn: 177085
-
- Mar 12, 2013
-
-
Sean Callanan authored
uninitialized memory, to getTrivialTypeSourceInfo, which initializes its memory, when creating trivial TypeSourceInfos. <rdar://problem/13332253> llvm-svn: 176899
-
Matt Kopec authored
llvm-svn: 176879
-
- Mar 10, 2013
-
-
Sylvestre Ledru authored
Match the new declaration of clang::ASTContext::getFunctionType introduced in clang r176726. Fix the build of lldb llvm-svn: 176790
-
- Mar 09, 2013
-
-
Sean Callanan authored
noisy when dealing with anonymous structs. <rdar://problem/13246914> llvm-svn: 176738
-