- Jan 09, 2013
-
-
Jim Ingham authored
Add an SBProcess API to get the current StopID, either considering or ignoring stops caused by expression evaluation. <rdar://problem/12968562> llvm-svn: 171914
-
- Dec 14, 2012
-
-
Sean Callanan authored
instead of falling through to the "frame variable" code. llvm-svn: 170169
-
- Dec 12, 2012
-
-
Jim Ingham authored
Added a "step-in-target" flag to "thread step-in" so if you have something like: Process 28464 stopped * thread #1: tid = 0x1c03, function: main , stop reason = breakpoint 1.1 frame #0: 0x0000000100000e08 a.out`main at main.c:62 61 -> 62 int A6 = complex (a(4), b(5), c(6)); // Stop here to step targetting b and hitting breakpoint. 63 and you want to get into "complex" skipping a, b and c, you can do: (lldb) step -t complex Process 28464 stopped * thread #1: tid = 0x1c03, function: complex , stop reason = step in frame #0: 0x0000000100000d0d a.out`complex at main.c:44 41 42 int complex (int first, int second, int third) 43 { -> 44 return first + second + third; // Step in targetting complex should stop here 45 } 46 47 int main (int argc, char const *argv[]) llvm-svn: 170008
-
- Dec 06, 2012
-
-
Jim Ingham authored
llvm-svn: 169549
-
rdar://problem/12560257Greg Clayton authored
Fixed zero sized arrays to work correctly. This will only happen once we get a clang that emits correct debug info for zero sized arrays. For now I have marked the TestStructTypes.py as an expected failure. llvm-svn: 169465
-
Sean Callanan authored
- Removed the BitfieldMap class because it is unnecessary. We now just track the most recently added field. - Moved the code that calculates bitfield widths so it can also be used to determine whether it's necessary to insert anonymous fields. - Simplified the anonymous field calculation code into three cases (two of which are resolved identically). - Beefed up the bitfield testcase. llvm-svn: 169449
-
- Dec 04, 2012
-
-
rdar://problem/12798131Greg Clayton authored
Cleaned up the option parsing code to always pass around the short options as integers. Previously we cast this down to "char" and lost some information. I recently added an assert that would detect duplicate short character options which was firing during the test suite. This fix does the following: - make sure all short options are treated as "int" - make sure that short options can be non-printable values when a short option is not required or when an option group is mixed into many commands and a short option is not desired - fix the help printing to "do the right thing" in all cases. Previously if there were duplicate short character options, it would just not emit help for the duplicates - fix option parsing when there are duplicates to parse options correctly. Previously the option parsing, when done for an OptionGroup, would just start parsing options incorrectly by omitting table entries and it would end up setting the wrong option value llvm-svn: 169189
-
- Nov 27, 2012
-
-
Daniel Malea authored
llvm-svn: 168727
-
- Nov 26, 2012
-
-
Daniel Malea authored
- use lldb settings command instead of os.environ - use dyldPath fixture variable instead of hardcoding LD_LIBRARY_PATH - add tear-down hook to restore environment after testcase is run llvm-svn: 168613
-
Daniel Malea authored
- use lldb 'settings' command to help testcase find shared library - pull up dyldPath variable from TestLoadUnload.py to fixture base class (applicable in multiple cases) llvm-svn: 168612
-
Daniel Malea authored
- setting LD_LIBRARY_PATH required for the test program to run correctly llvm-svn: 168595
-
- Nov 09, 2012
-
-
Jason Molenda authored
flags to the Linux makefiles to get the tests to run. llvm-svn: 167600
-
- Nov 06, 2012
-
-
Greg Clayton authored
llvm-svn: 167473
-
- Oct 23, 2012
-
-
Sean Callanan authored
of structures, and added a testcase. <rdar://problem/12551591> llvm-svn: 166450
-
- Sep 22, 2012
-
-
Jim Ingham authored
Fix all the test case breakages caused by folks writing tests all over the place that depended explicitly on the output of "break set". Please don't do this sort of thing!!!!! llvm-svn: 164433
-
- Jul 18, 2012
-
-
Sean Callanan authored
single element. Also modified our struct test case to test this. llvm-svn: 160449
-
- May 12, 2012
-
-
Jim Ingham authored
Also changed the defaults for SBThread::Step* to not delete extant plans. Also added some test cases to test more complex stepping scenarios. llvm-svn: 156667
-
- Apr 06, 2012
-
-
Johnny Chen authored
Plus some minor cleanup of test method names. Third and final batch is coming. llvm-svn: 154197
-
- Mar 30, 2012
-
-
rdar://problem/11024417Enrico Granata authored
Disabling blocks support because of rdar://problem/11024417 - This is hopefully just a temporary countermeasure llvm-svn: 153758
-
- Mar 27, 2012
-
-
rdar://problem/11113279Greg Clayton authored
Fixed type lookups to "do the right thing". Prior to this fix, looking up a type using "foo::bar" would result in a type list that contains all types that had "bar" as a basename unless the symbol file was able to match fully qualified names (which our DWARF parser does not). This fix will allow type matches to be made based on the basename and then have the types that don't match filtered out. Types by name can be fully qualified, or partially qualified with the new "bool exact_match" parameter to the Module::FindTypes() method. This fixes some issue that we discovered with dynamic type resolution as well as improves the overall type lookups in LLDB. llvm-svn: 153482
-
- Mar 08, 2012
-
-
Sean Callanan authored
This takes two important changes: - Calling blocks is now supported. You need to cast their return values, but that works fine. - We now can correctly run JIT-compiled expressions that use floating-point numbers. Also, we have taken a fix that allows us to ignore access control in Objective-C as in C++. llvm-svn: 152286
-
- Mar 06, 2012
-
-
Sean Callanan authored
but gated by an #ifdef until we roll LLVM/Clang to bring in the necessary parser support. llvm-svn: 152149
-
- Mar 02, 2012
-
-
Sean Callanan authored
so that the expression parser can look up members of anonymous structs correctly. This meant creating all the proper IndirectFieldDecls in each Record after it has been completely populated with members. llvm-svn: 151868
-
- Feb 04, 2012
-
-
Sean Callanan authored
LLVM/Clang. This brings in several fixes, including: - Improvements in the Just-In-Time compiler's allocation of memory: the JIT now allocates memory in chunks of sections, improving its ability to generate relocations. I have revamped the RecordingMemoryManager to reflect these changes, as well as to get the memory allocation and data copying out fo the ClangExpressionParser code. Jim Grosbach wrote the updates to the JIT on the LLVM side. - A new ExternalASTSource interface to allow LLDB to report accurate structure layout information to Clang. Previously we could only report the sizes of fields, not their offsets. This meant that if data structures included field alignment directives, we could not communicate the necessary alignment to Clang and accesses to the data would fail. Now we can (and I have update the relevant test case). Thanks to Doug Gregor for implementing the Clang side of this fix. - The way Objective-C interfaces are completed by Clang has been made consistent with RecordDecls; with help from Doug Gregor and Greg Clayton I have ensured that this still works. - I have eliminated all local LLVM and Clang patches, committing the ones that are still relevant to LLVM and Clang as needed. I have tested the changes extensively locally, but please let me know if they cause any trouble for you. llvm-svn: 149775
-
Greg Clayton authored
instead of the __repr__. __repr__ is a function that should return an expression that can be used to recreate an python object and we were using it to just return a human readable string. Fixed a crasher when using the new implementation of SBValue::Cast(SBType). Thread hardened lldb::SBValue and lldb::SBWatchpoint and did other general improvements to the API. Fixed a crasher in lldb::SBValue::GetChildMemberWithName() where we didn't correctly handle not having a target. llvm-svn: 149743
-
- Dec 09, 2011
-
-
Sean Callanan authored
in the context in which it was originally found, the expression parser now goes hunting for it in all modules (in the appropriate namespace, if applicable). This means that forward-declared types that exist in another shared library will now be resolved correctly. Added a test case to cover this. The test case also tests "frame variable," which does not have this functionality yet. llvm-svn: 146204
-
- Nov 13, 2011
-
-
rdar://problem/10338439Greg Clayton authored
This is the actual fix for the above radar where global variables that weren't initialized were not being shown correctly when leaving the DWARF in the .o files. Global variables that aren't intialized have symbols in the .o files that specify they are undefined and external to the .o file, yet document the size of the variable. This allows the compiler to emit a single copy, but makes it harder for our DWARF in .o files with the executable having a debug map because the symbol for the global in the .o file doesn't exist in a section that we can assign a fixed up linked address to, and also the DWARF contains an invalid address in the "DW_OP_addr" location (always zero). This means that the DWARF is incorrect and actually maps all such global varaibles to the first file address in the .o file which is usually the first function. So we can fix this in either of two ways: make a new fake section in the .o file so that we have a file address in the .o file that we can relink, or fix the the variable as it is created in the .o file DWARF parser and actually give it the file address from the executable. Each variable contains a SymbolContextScope, or a single pointer that helps us to recreate where the variables came from (which module, file, function, etc). This context helps us to resolve any file addresses that might be in the location description of the variable by pointing us to which file the file address comes from, so we can just replace the SymbolContextScope and also fix up the location, which we would have had to do for the other case as well, and update the file address. Now globals display correctly. The above changes made it possible to determine if a variable is a global or static variable when parsing DWARF. The DWARF emits a DW_TAG_variable tag for each variable (local, global, or static), yet DWARF provides no way for us to classify these variables into these categories. We can now detect when a variable has a simple address expressions as its location and this will help us classify these correctly. While making the above changes I also noticed that we had two symbol types: eSymbolTypeExtern and eSymbolTypeUndefined which mean essentially the same thing: the symbol is not defined in the current object file. Symbol objects also have a bit that specifies if a symbol is externally visible, so I got rid of the eSymbolTypeExtern symbol type and moved all code locations that used it to use the eSymbolTypeUndefined type. llvm-svn: 144489
-
- Sep 15, 2011
-
-
Johnny Chen authored
llvm-svn: 139802
-
- Sep 06, 2011
-
-
Enrico Granata authored
- introduced two new classes ValueObjectConstResultChild and ValueObjectConstResultImpl: the first one is a ValueObjectChild obtained from a ValueObjectConstResult, the second is a common implementation backend for VOCR and VOCRCh of method calls meant to read through pointers stored in frozen objects ; now such reads transparently move from host to target as required - as a consequence of the above, removed code that made target-memory copies of expression results in several places throughout LLDB, and also removed code that enabled to recognize an expression result VO as such - introduced a new GetPointeeData() method in ValueObject that lets you read a given amount of objects of type T from a VO representing a T* or T[], and doing dereferences transparently in private layer it returns a DataExtractor ; in public layer it returns an instance of a newly created lldb::SBData - as GetPointeeData() does the right thing for both frozen and non-frozen ValueObject's, reimplemented ReadPointedString() to use it en lieu of doing the raw read itself - introduced a new GetData() method in ValueObject that lets you get a copy of the data that backs the ValueObject (for pointers, this returns the address without any previous dereferencing steps ; for arrays it actually reads the whole chunk of memory) in public layer this returns an SBData, just like GetPointeeData() - introduced a new CreateValueFromData() method in SBValue that lets you create a new SBValue from a chunk of data wrapped in an SBData the limitation to remember for this kind of SBValue is that they have no address: extracting the address-of for these objects (with any of GetAddress(), GetLoadAddress() and AddressOf()) will return invalid values - added several tests to check that "p"-ing objects (STL classes, char* and char[]) will do the right thing Solved a bug where global pointers to global variables were not dereferenced correctly for display New target setting "max-string-summary-length" gives the maximum number of characters to show in a string when summarizing it, instead of the hardcoded 128 Solved a bug where the summary for char[] and char* would not be shown if the ValueObject's were dumped via the "p" command Removed m_pointers_point_to_load_addrs from ValueObject. Introduced a new m_address_type_of_children, which each ValueObject can set to tell the address type of any pointers and/or references it creates. In the current codebase, this is load address most of the time (the only notable exception being file addresses that generate file address children UNLESS we have a live process) Updated help text for summary-string Fixed an issue in STL formatters where std::stlcontainer::iterator would match the container's synthetic children providers Edited the syntax and help for some commands to have proper argument types llvm-svn: 139160
-
- Aug 23, 2011
-
-
Sean Callanan authored
rolled back, and the testcase that the rollback broke. The new LLVM has a new ARM disassembler, which may cause instability. Keeping the old one would force us into a contorted position vis-a-vis the LLVM sources we bring in, so we will address issues on the new one rather than keeping the old one around. llvm-svn: 138284
-
- Aug 19, 2011
-
-
Sean Callanan authored
revision and adding a patch that fixes an AsmParser crash on ARM. One feature that we unfortunately lost (for the moment!) is the ability to cast unknown code symbols to arbitrary function types and put the resulting function pointer in a result variable. This feature will be back, though. llvm-svn: 138036
-
Johnny Chen authored
llvm-svn: 138013
-
Johnny Chen authored
Failed possibly due to rollback of llvm/clang. llvm-svn: 138011
-
- Aug 16, 2011
-
-
Johnny Chen authored
llvm-svn: 137739
-
- Aug 11, 2011
-
-
Johnny Chen authored
On Lion, printf is defined in libsystem_c.dylib. llvm-svn: 137348
-
Sean Callanan authored
problem in which the following cast: – expr (int (*)(const char*, ...))printf - caused a crash. This had several causes: - First, Clang did not support implicit casts of a function of unknown type to a function pointer. - Second, after this was fixed, the Clang AST importer did not support importing function pointer types produced by resolving these casts. These two problems are now resolved, and I have added a test case to verify that they work. I also did a little bit of build-system cleanup because we now use libEnhancedDisassembly.a instead of the .dylib. llvm-svn: 137338
-
- Aug 10, 2011
-
-
Sean Callanan authored
of string literals ("hello"[2]). Also fixed a problem in which empty string literals were not being compiled correctly ((int)printf("") would print garbage). Added a testcase that covers both. llvm-svn: 137247
-
- Aug 09, 2011
-
-
Johnny Chen authored
rdar://problem/9747668 llvm-svn: 137129
-
- Aug 04, 2011
-
-
Greg Clayton authored
the SBType implementation classes. Fixed LLDB core and the test suite to not use deprecated SBValue APIs. Added a few new APIs to SBValue: int64_t SBValue::GetValueAsSigned(int64_t fail_value=0); uint64_t SBValue::GetValueAsUnsigned(uint64_t fail_value=0) llvm-svn: 136829
-
- Jul 11, 2011
-
-
Johnny Chen authored
Only the val (of SBValue type) argument is needed. llvm-svn: 134915
-