summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
...
* Set a flag on the AST type dump to see Objective-CSean Callanan2011-12-061-1/+5
| | | | | | | | methods. The Clang dump is now much more verbose, but when somebody types "target modules lookup -t" that is typically what they're looking for. llvm-svn: 145892
* Correct typo in method name (AddSymbolFileRepresendation...)Jim Ingham2011-12-063-5/+5
| | | | llvm-svn: 145884
* Sanity check the inputs to SBCommandInterpreter::HandleCompletionJim Ingham2011-12-051-0/+13
| | | | llvm-svn: 145840
* Because we now call StartTagDeclarationDefinition()Sean Callanan2011-12-051-1/+1
| | | | | | | | | and CompleteTagDeclarationDefinition() on Objective-C interfaces populated by SymbolFileSymtab::FindTypes(), we should mark the interface as forward-declared when we create it. llvm-svn: 145825
* Bumped Xcode project version for lldb-92.Greg Clayton2011-12-052-16/+16
| | | | llvm-svn: 145814
* Fixed the remaining test suite failures after the recent objective C cleanupGreg Clayton2011-12-052-81/+58
| | | | | | | | | | | | and fixes we did. Now that objective C classes are represented by symbols with their own type, there were a few more places in the objective C code that needed to be fixed when searching for dynamic types. Cleaned up the objective C runtime plug-in a bit to not keep having to create constant strings and make one less memory access when we find an "isa" in the objective C cache. llvm-svn: 145799
* Added the ability for clients to grab a set of symbol table indexes and thenGreg Clayton2011-12-036-120/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | add them to a fast lookup map. lldb_private::Symtab now export the following public typedefs: namespace lldb_private { class Symtab { typedef std::vector<uint32_t> IndexCollection; typedef UniqueCStringMap<uint32_t> NameToIndexMap; }; } Clients can then find symbols by name and or type and end up with a Symtab::IndexCollection that is filled with indexes. These indexes can then be put into a name to index lookup map and control if the mangled and demangled names get added to the map: bool add_demangled = true; bool add_mangled = true; Symtab::NameToIndexMap name_to_index; symtab->AppendSymbolNamesToMap (indexes, add_demangled, add_mangled, name_to_index). This can be repeated as many times as needed to get a lookup table that you are happy with, and then this can be sorted: name_to_index.Sort(); Now name lookups can be done using a subset of the symbols you extracted from the symbol table. This is currently being used to extract objective C types from object files when there is no debug info in SymbolFileSymtab. Cleaned up how the objective C types were being vended to be more efficient and fixed some errors in the regular expression that was being used. llvm-svn: 145777
* Added code to make sure we don't recursively try to find an objective CGreg Clayton2011-12-034-14/+216
| | | | | | | | | | | class. The thing with Objective C classes is the debug info might have a definition that isn't just a forward decl, but it is incomplete. So we need to look and see if we can find the complete definition and avoid recursing a lot due to the fact that our accelerator tables will have many versions of the type, but only one complete one. We might not also have the complete type and we need to deal with this correctly. llvm-svn: 145759
* Testcase fixes with the new symbol lookup code forSean Callanan2011-12-038-30/+37
| | | | | | | | | | | | Objective-C, making symbol lookups for various raw Objective-C symbols work correctly. The IR interpreter makes these lookups because Clang has emitted raw symbol references for ivars and classes. Also improved performance in SymbolFiles, caching the result of asking for SymbolFile abilities. llvm-svn: 145758
* Added a code for a test to find the real Objective C class definition. I Greg Clayton2011-12-036-0/+110
| | | | | | still need to write the test case file. llvm-svn: 145756
* Added ClangExternalASTSourceCommon, a local superclassSean Callanan2011-12-037-33/+171
| | | | | | | | | | | | | | | | | for all our external AST sources that lets us associate arbitrary flags with the types we put into the AST contexts. Also added an API on ClangASTContext that allows access to these flags given only an ASTContext and a type. Because we don't have access to RTTI, and because at some point in the future we might encounter external AST sources that we didn't make (so they don't subclass ClangExternalASTSourceCommon) I added a magic number that we check before doing anything else, so that we can catch that problem as soon as it appears. llvm-svn: 145748
* Remove accidental "else" that was left in in prior checking.Greg Clayton2011-12-031-1/+1
| | | | llvm-svn: 145746
* Added new symbol types for Objective C classes, metaclasses, and ivars. EachGreg Clayton2011-12-037-107/+169
| | | | | | | | object file can correctly make these symbols which will abstract us from the file format and ABI and we can then ask for the objective C class symbol for a class and find out which object file it was defined in. llvm-svn: 145744
* Make the ThreadPlanStepThrough set a backstop breakpoint on the return ↵Jim Ingham2011-12-0311-98/+314
| | | | | | | | | | | | | | address from the function it is being asked to step through, so that even if we get the trampoline target wrong (for instance) we will still not lose control. The other fix here is to tighten up the handling of the case where the current plan doesn't explain the stop, but a plan above us does. In that case, if the plan that does explain the stop says it is done, we need to clean up the plans below it and continue on with our processing. llvm-svn: 145740
* Fixed some extra warnings that show up with the new clang.Greg Clayton2011-12-035-15/+15
| | | | llvm-svn: 145735
* <rdar://problem/10522194>Greg Clayton2011-12-031-19/+47
| | | | | | | | | | | | | | | Fixed an issue where if we have the DWARF equivalent of: struct foo; class foo { ... }; Or vice versa, we wouldn't be able to find the complete type. Since many compilers allow forward declarations to have struct and definitions to have class, we need to be able to deal with both cases. This commit fixes this in the DWARF parser. llvm-svn: 145733
* Let's also record the compiler version used for compiling the inferior into ↵Johnny Chen2011-12-031-0/+3
| | | | | | the session info llvm-svn: 145732
* <rdar://problem/10410131>Greg Clayton2011-12-021-1/+1
| | | | | | Fixed an issue that could cause an infinite recursion when using "type filter". llvm-svn: 145720
* Modified the Objective-C type map in SymbolFileSymtabSean Callanan2011-12-022-3/+3
| | | | | | | | | | to use ConstStrings. The const char*s were assumed to be from ConstStrings before, but since storing a full-on ConstString is no more expensive than storing a const char* it makes better sense to enforce uniqueness with the type checker. llvm-svn: 145688
* Added support for extracting method information fromSean Callanan2011-12-022-1/+106
| | | | | | | | Objective-C symbols. The methods aren't used yet if there is a competing definition in the DWARF; I will resolve that next. llvm-svn: 145675
* After moving lldb::pid_t to 64 bits, keep a deprecated version around forGreg Clayton2011-12-022-0/+19
| | | | | | | previous binaries that link against this for a few builds to make sure we can continue to run against previous binaries. llvm-svn: 145668
* <rdar://problem/10394517>Greg Clayton2011-12-021-2/+9
| | | | | | | | | | | | Fixed templates with NonTypeTemplateParmDecl objects. For example: template <unsigned N> .... This fixes SmallVector and all of the other classes that have template params that are non types. llvm-svn: 145667
* "f" should be an alias for "frame select" not "finish" to match the gdb usage.Jim Ingham2011-12-021-1/+6
| | | | llvm-svn: 145660
* Process IDs (lldb::pid_t) and thread IDs (lldb::tid_t) are now 64 bit. This Greg Clayton2011-12-0117-47/+47
| | | | | | | | will allow us to represent a process/thread ID using a pointer for the OS plug-ins where they might want to represent the process or thread ID using the address of the process or thread structure. llvm-svn: 145644
* Modified clients of ClangASTImporter to be more robustSean Callanan2011-12-012-1/+60
| | | | | | | | | | in the face of failures to import types, since blithely passing on NULL types can sometimes lead to trouble. Also eliminated a use of getAs and replaced it with dyn_cast, which is more robust. llvm-svn: 145628
* Protect a few log->Printf calls with "if (log)"...Jim Ingham2011-12-011-5/+7
| | | | llvm-svn: 145625
* Picked up a new revision of Clang to pull in Objective-CSean Callanan2011-12-016-14/+15
| | | | | | | | | | | | | | | | | enhancements. With these enhancements, the return values of Objective-C methods with unknown return types can be implicitly cast to id for the purpose of making method calls. So what would have required this: (int)[(id)[ClassWithNoDebugInfo methodReturningObject] methodReturningInt] can now be written as: (int)[[ClassWithNoDebugInfo methodReturningObject] methodReturningInt] llvm-svn: 145567
* <rdar://problem/10507811>Greg Clayton2011-12-011-1/+10
| | | | | | | Avoid a crash for the new DW_OP_stack_value and DW_OP_implicit_value opcodes that was due to an assertion. llvm-svn: 145564
* Bumping Xcode project version for lldb-91.Greg Clayton2011-12-012-16/+16
| | | | llvm-svn: 145561
* If we are going to assert due to an unhanded opcode, stuff the opcode value ↵Jim Ingham2011-12-011-2/+6
| | | | | | into the CrashReporter string first. llvm-svn: 145558
* Made symbol lookup in the expression parser moreSean Callanan2011-12-013-10/+12
| | | | | | | | | | | | | | robust: - Now a client can specify what kind of symbols are needed; notably, this allows looking up Objective-C class symbols specifically. - In the class of symbols being looked up, if one is non-NULL and others are NULL, LLDB now prefers the non-NULL one. llvm-svn: 145554
* rdar://problem/10501020Johnny Chen2011-11-304-5/+7
| | | | | | | | | | | | | | | | | ClangASTSource::~ClangASTSource() was calling ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(); which had the side effect of deleting this very ClangASTSource instance. Not good. Change it to // We are in the process of destruction, don't create clang ast context on demand // by passing false to Target::GetScratchClangASTContext(create_on_demand). ClangASTContext *scratch_clang_ast_context = m_target->GetScratchClangASTContext(false); The Target::GetScratchClangASTContext(bool create_on_demand=true) has a new signature. llvm-svn: 145537
* Bumped Xcode project versions for lldb-90 and debugserver-154Greg Clayton2011-11-303-22/+22
| | | | llvm-svn: 145528
* Added support to the Objective-C language runtimeSean Callanan2011-11-3013-12/+266
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | to find Objective-C class types by looking in the symbol tables for the individual object files. I did this as follows: - I added code to SymbolFileSymtab that vends Clang types for symbols matching the pattern "_OBJC_CLASS_$_NSMyClassName," making them appear as Objective-C classes. This only occurs in modules that do not have debug information, since otherwise SymbolFileDWARF would be in charge of looking up types. - I made a new SymbolVendor subclass for the Apple Objective-C runtime that is in charge of making global lookups of Objective-C types. It currently just sends out type lookup requests to the appropriate SymbolFiles, but in the future we will probably extend it to query the runtime more completely. I also modified a testcase whose behavior is changed by the fact that we now actually return an Objective-C type for __NSCFString. llvm-svn: 145526
* Add processing of '-help' option.Johnny Chen2011-11-301-0/+3
| | | | llvm-svn: 145516
* Make sure that we print out function or symbol information. If we disassembledGreg Clayton2011-11-301-1/+1
| | | | | | a symbol, were weren't showing the "<module>`<symbol>" header. llvm-svn: 145511
* I broke the test suite (4 failures) with r145459 check-in.Johnny Chen2011-11-301-0/+1
| | | | | | Fix the breakage by properly setting the result status before returning. llvm-svn: 145507
* Turn off the resolver detection till we find a better method to do so.Jim Ingham2011-11-301-1/+6
| | | | llvm-svn: 145472
* Add a work around to deal with incorrect forward class definitions in Greg Clayton2011-11-301-0/+18
| | | | | | objective C DWARF emitted by clang. llvm-svn: 145471
* rdar://problem/9211445Johnny Chen2011-11-301-4/+24
| | | | | | | | | | | | | Fix wrong test logic in test_modules_search_paths(). Add additional exercising of 'target modules search-paths list/query". There is a reproducible crash if 'target modules search-paths clear' is exercised during test teardown. So we currently comment out the stmt as follows: # Add teardown hook to clear image-search-paths after the test. # rdar://problem/10501020 # Uncomment the following to reproduce 10501020. #self.addTearDownHook(lambda: self.runCmd("target modules search-paths clear")) llvm-svn: 145466
* Remove possible cut-and-paste code which doesn't belong.Johnny Chen2011-11-291-7/+1
| | | | llvm-svn: 145459
* <rdar://problem/10500242>Greg Clayton2011-11-291-14/+27
| | | | | | Find the one true objective C type definition if there is one within a module. llvm-svn: 145457
* Added #ifdef wrappers around the contents ofSean Callanan2011-11-291-0/+5
| | | | | | ASTDumper.h. llvm-svn: 145446
* Modified ClangExpressionDeclMap to use existingSean Callanan2011-11-292-8/+10
| | | | | | | | ValueObjects when creating variables referring to live data rather than constructing ValueObjectConstResults. llvm-svn: 145437
* Missing return in error handling for "source list".Jim Ingham2011-11-291-0/+1
| | | | llvm-svn: 145435
* Typo in error string.Jim Ingham2011-11-291-1/+1
| | | | llvm-svn: 145434
* Patch from Dawn that fixes up linux debugging and a first passs at an Greg Clayton2011-11-295-62/+221
| | | | | | implementation of the linux platform. llvm-svn: 145433
* Add bench entries.Johnny Chen2011-11-291-1/+40
| | | | llvm-svn: 145417
* <rdar://problem/10429064>Greg Clayton2011-11-292-84/+3
| | | | | | | | Fixed an issue where if we are debugging on a remote platform and set a platform path for our executable, it was not being honored by the new launch functions that used the ProcessLaunchInfo. llvm-svn: 145371
* I added more complete documentation on all of the new packets we use in LLDBGreg Clayton2011-11-291-100/+333
| | | | | | | | | | as well as attached a new priority description as to why and when you would want to implement each packet. Also documented the additions we have made to the stop reply packet and why the extra information is necessary. llvm-svn: 145357
OpenPOWER on IntegriCloud