- Feb 21, 2012
-
-
Greg Clayton authored
objects for the backlink to the lldb_private::Process. The issues we were running into before was someone was holding onto a shared pointer to a lldb_private::Thread for too long, and the lldb_private::Process parent object would get destroyed and the lldb_private::Thread had a "Process &m_process" member which would just treat whatever memory that used to be a Process as a valid Process. This was mostly happening for lldb_private::StackFrame objects that had a member like "Thread &m_thread". So this completes the internal strong/weak changes. Documented the ExecutionContext and ExecutionContextRef classes so that our LLDB developers can understand when and where to use ExecutionContext and ExecutionContextRef objects. llvm-svn: 151009
-
Enrico Granata authored
llvm-svn: 150997
-
- Feb 20, 2012
-
-
Enrico Granata authored
llvm-svn: 150992
-
Johnny Chen authored
Patch by Dmitry Vyukov <dvyukov@google.com>. Also add the relevant files to the Xcode project. llvm-svn: 150991
-
Johnny Chen authored
Patch to fix the main.cpp compile error submitted by Dmitry Vyukov <dvyukov@google.com>. Also add a Makefile, plus some modification to main.cpp. llvm-svn: 150990
-
- Feb 18, 2012
-
-
Greg Clayton authored
the lldb_private::StackFrame objects hold onto a weak pointer to the thread object. The lldb_private::StackFrame objects the the most volatile objects we have as when we are doing single stepping, frames can often get lost or thrown away, only to be re-created as another object that still refers to the same frame. We have another bug tracking that. But we need to be able to have frames no longer be able to get the thread when they are not part of a thread anymore, and this is the first step (this fix makes that possible but doesn't implement it yet). Also changed lldb_private::ExecutionContextScope to return shared pointers to all objects in the execution context to further thread harden the internals. llvm-svn: 150871
-
Sean Callanan authored
fetching it. llvm-svn: 150861
-
Enrico Granata authored
making it so that the std::map test case does a better job at checking for interference between expression parser and synthetic children; plus being more verbose in the comments llvm-svn: 150854
-
- Feb 17, 2012
-
-
Jim Ingham authored
llvm-svn: 150843
-
Greg Clayton authored
internals. The first part of this is to use a new class: lldb_private::ExecutionContextRef This class holds onto weak pointers to the target, process, thread and frame and it also contains the thread ID and frame Stack ID in case the thread and frame objects go away and come back as new objects that represent the same logical thread/frame. ExecutionContextRef objcets have accessors to access shared pointers for the target, process, thread and frame which might return NULL if the backing object is no longer available. This allows for references to persistent program state without needing to hold a shared pointer to each object and potentially keeping that object around for longer than it needs to be. You can also "Lock" and ExecutionContextRef (which contains weak pointers) object into an ExecutionContext (which contains strong, or shared pointers) with code like ExecutionContext exe_ctx (my_obj->GetExectionContextRef().Lock()); llvm-svn: 150801
-
Enrico Granata authored
llvm-svn: 150785
-
Enrico Granata authored
Adding formatters for several useful Objective-C/Cocoa data types. The new categories are not enabled at startup, but can be manually activated if desired. Adding new API calls to SBValue to be able to retrieve the associated formatters Some refactoring to FormatNavigator::Get() in order to shrink its size down to more manageable terms (a future, massive, refactoring effort will still be needed) Test cases added for the above llvm-svn: 150784
-
Greg Clayton authored
register set where it could get an error when trying to restore the fake "f0" - "f7" 12 byte float regs. llvm-svn: 150781
-
Sean Callanan authored
which uses the Disassembler.h interface to the LLVM disassemblers rather than the EnhancedDisassembly.h interface. Disassembler.h is a better-maintained API and will be stabler in the long term. Currently the output from Disassembler.h does not provide for symbolic disassembly in all the places that the old disassembler did, so I have gated (and disabled) the disassembler. It'll be easy to flip the switch later. In the meantime, to enable the new disassembler, uncomment "#define USE_NEW_DISASSEMBLER" in lldb.cpp. llvm-svn: 150772
-
Johnny Chen authored
memory read -f X doesn't print anything (lldb should warn when encountering an unsupported byte size) Also add a test sequence for it. rdar://problem/10876841 llvm-svn: 150766
-
- Feb 16, 2012
-
-
Johnny Chen authored
DataExtractor::Dump() needs to supply the correct cursor when delegating to the child DataExtractor::Dump() calls. Add a regression test file. rdar://problem/10872908 llvm-svn: 150729
-
Jim Ingham authored
Use this to allow the lldb Driver to emit notifications for breakpoint modifications. <rdar://problem/10619974> llvm-svn: 150665
-
Greg Clayton authored
that take formats or sizes. Also document that scalar expression results can be used in any command using expressions inside backticks. llvm-svn: 150652
-
- Feb 15, 2012
-
-
Sean Callanan authored
told to look in a namespace. llvm-svn: 150590
-
Enrico Granata authored
llvm-svn: 150559
-
rdar://problem/10062621Enrico Granata authored
New public API for handling formatters: creating, deleting, modifying categories, and formatters, and managing type/formatter association. This provides SB classes for each of the main object types involved in providing formatter support: SBTypeCategory SBTypeFilter SBTypeFormat SBTypeSummary SBTypeSynthetic plus, an SBTypeNameSpecifier class that is used on the public API layer to abstract the notion that formatters can be applied to plain type-names as well as to regular expressions For naming consistency, this patch also renames a lot of formatters-related classes. Plus, the changes in how flags are handled that started with summaries is now extended to other classes as well. A new enum (lldb::eTypeOption) is meant to support this on the public side. The patch also adds several new calls to the formatter infrastructure that are used to implement by-index accessing and several other design changes required to accommodate the new API layer. An architectural change is introduced in that backing objects for formatters now become writable. On the public API layer, CoW is implemented to prevent unwanted propagation of changes. Lastly, there are some modifications in how the "default" category is constructed and managed in relation to other categories. llvm-svn: 150558
-
Sean Callanan authored
JIT when printing the values of registers (e.g., "expr $pc"). Now the expression parser can do this in the IR interpreter without running code in the inferior process. llvm-svn: 150554
-
- Feb 14, 2012
-
-
Sean Callanan authored
can be allocated in the process. llvm-svn: 150523
-
Johnny Chen authored
Remove the functionality of using 'frame variable -w' to set a watchpoint now that 'watchpoint set variable/expression' is working. Also update the relevant test cases. llvm-svn: 150514
-
Johnny Chen authored
llvm-svn: 150501
-
Enrico Granata authored
llvm-svn: 150492
-
Johnny Chen authored
Add test cases exercising SBValue.GetObjectDescription() with the SBValue from SBTarget.FindGlobalVariables() as well as from SBFrame.GetVariables(). Both scenarios are expected to work. llvm-svn: 150450
-
Sean Callanan authored
for assembly instructions to occasionally come out empty. llvm-svn: 150445
-
Greg Clayton authored
seems that sections in the memory module might be quite different from the sections in the file module. Now we find all segments in the on disk file and find that segment by name in the memory module and it is ok if any sections from the file are missing in the memory image. llvm-svn: 150443
-
Johnny Chen authored
Add a test case for completion from 'settings set target.exec' to 'settings set target.exec-search-paths '. llvm-svn: 150427
-
Greg Clayton authored
Tracking modules down when you have a UUID and a path has been improved. DynamicLoaderDarwinKernel no longer parses mach-o load commands and it now uses the memory based modules now that we can load modules from memory. Added a target setting named "target.exec-search-paths" which can be used to supply a list of directories to use when trying to look for executables. This allows one or more directories to be used when searching for modules that may not exist in the SDK/PDK. The target automatically adds the directory for the main executable to this list so this should help us in tracking down shared libraries and other binaries. llvm-svn: 150426
-
- Feb 13, 2012
-
-
Sean Callanan authored
anonymous types to each other unless they have the same byte_size. llvm-svn: 150422
-
Jason Molenda authored
llvm-svn: 150421
-
- Feb 11, 2012
-
-
Sean Callanan authored
"target modules lookup" also work with the "--function" option, so you can search for functions that aren't inlined. This is the same query that the expression parser makes, so it's good for diagnosing situations where the expression parser doesn't find a function you think should be there. llvm-svn: 150289
-
Sean Callanan authored
prettier. llvm-svn: 150285
-
- Feb 10, 2012
-
-
Sean Callanan authored
indicate whether inline functions are desired. This allows the expression parser, for instance, to filter out inlined functions when looking for functions it can call. llvm-svn: 150279
-
Sean Callanan authored
detection of kernels into the object file and adding a new category for raw binary images. Fixed all clients who previously searched for sections manually, making them use the object file's facilities instead. llvm-svn: 150272
-
Greg Clayton authored
llvm-svn: 150271
-
Sean Callanan authored
parser. Specifically: - ClangUserExpression now keeps weak pointers to the structures it needs and then locks them when needed. This ensures that they continue to be valid without leaking memory if the ClangUserExpression is long lived. - ClangExpressionDeclMap, instead of keeping a pointer to an ExecutionContext, now contains an ExecutionContext. This prevents bugs if the pointer or its contents somehow become stale. It also no longer requires that ExecutionContexts be passed into any function except its initialization function, since it can count on the ExecutionContext still being around. There's a lot of room for improvement (specifically, ClangExpressionDeclMap should also use weak pointers insetad of shared pointers) but this is an important first step that codifies assumptions that already existed in the code. llvm-svn: 150217
-
Enrico Granata authored
fixing a macro name mismatch that was making our test case succeed for the wrong reason; plus a minor code change to the CPP side of the test which eases debugging efforts llvm-svn: 150213
-