Commit Graph

4501 Commits

Author SHA1 Message Date
Greg Clayton 6a1edd70cf Bumped project Xcode project version for lldb-122 and debugserver-173.
llvm-svn: 152088
2012-03-06 01:36:31 +00:00
Enrico Granata 6014590824 Fixing a crasher bug where we were not checking for NULL before trying to retrieve the format for a type
llvm-svn: 152087
2012-03-06 01:28:31 +00:00
Johnny Chen da324de971 rdar://problem/10267705
Clarification on the error message when the display format (eFormatBytes/eFormatBytesWithASCII) conflicts
with the byte size.

llvm-svn: 152084
2012-03-06 01:17:59 +00:00
Jim Ingham fab10e89ce Add a command and an SB API to create exception breakpoints. Make the break output prettier for Exception breakpoints.
llvm-svn: 152081
2012-03-06 00:37:27 +00:00
Greg Clayton e16e2d02ea <rdar://problem/10986692>
Safeguard against building on next OS and run on current OS.

llvm-svn: 152077
2012-03-06 00:24:17 +00:00
Sean Callanan bb6e7edd32 Made sure to store the type for "this" when in a
C++ method.

llvm-svn: 152064
2012-03-05 22:08:20 +00:00
Enrico Granata 3508487f37 Copying a new file required for the updated formatters to work into LLDB.framework
llvm-svn: 152053
2012-03-05 20:05:24 +00:00
Enrico Granata cfdafa37b4 Several performance-oriented changes to the introspecting data formatters:
(a) the SystemParameters object is now passed around to the formatters; doing so enables the formatters to reuse computed values for things such as pointer-size and endianness
     instead of repeatedly computing these on their own
 (b) replacing the global ISA cache with a per-process one
 (c) providing a per-process types cache where each formatter can store the types it needs to operate, and be sure to find them the next time without recalculating them
     this also enables formatters to share types if they agree on a local naming convention
 (d) lazy fetching of data from Objective-C runtime data structures
     data is fetched as needed and we stop reading as soon as we determine that an ISA is actually garbage

llvm-svn: 152052
2012-03-05 19:56:33 +00:00
Johnny Chen 35e2ab6039 rdar://problem/10976649
Add SBFrame::IsEqual(const SBFrame &that) method and export it to the Python binding.
Alos add a test case test_frame_api_IsEqual() to TestFrames.py file.

llvm-svn: 152050
2012-03-05 19:53:24 +00:00
Johnny Chen d1adb79010 Add two expectedFailure decorators with radar number.
llvm-svn: 152049
2012-03-05 19:48:28 +00:00
Johnny Chen 641e95de86 Minor cleanup.
llvm-svn: 152038
2012-03-05 18:25:29 +00:00
Jim Ingham 219ba1969b Make it possible to set Exception breakpoints when the target doesn't yet
have a process, then fetch the right runtime resolver when the process is made.

llvm-svn: 152015
2012-03-05 04:47:34 +00:00
Enrico Granata 7a3b1d9757 Correct wrong values in the test case
llvm-svn: 151982
2012-03-03 18:29:21 +00:00
Jason Molenda f7b4b56344 Remove "llvm" from list of things to ignore. This results in the
files in source/Plugins/Disassembler/llvm not being handled properly
by git.

llvm-svn: 151969
2012-03-03 06:43:59 +00:00
Enrico Granata 89fd064582 Currently TestDataFormatterPythonSynth is failing because of an issue with children capping. Splitting the test case in two so we better isolate the issue and also for better logical separation
llvm-svn: 151966
2012-03-03 03:13:03 +00:00
Jim Ingham 133e0fb3c6 First step to making an LanguageRuntime Exception breakpoint API.
<rdar://problem/10196277>

llvm-svn: 151965
2012-03-03 02:05:11 +00:00
Enrico Granata 385ad4e401 added a new formatter for CF(Mutable)BitVector
fixed a few potential NULL-pointer derefs in ValueObject
we have a way to provide docstrings for properties we add to the SWIG layer - a few of these properties have a docstring already, more will come in future commits
added a new bunch of properties to SBData to make it more natural and Python-like to access the data they contain

llvm-svn: 151962
2012-03-03 00:45:57 +00:00
Greg Clayton 44f6bddb17 <rdar://problem/10974749>
Added more cases to deal with new default compiler driver flags that were making builds fail.

llvm-svn: 151954
2012-03-02 23:25:41 +00:00
Sean Callanan 7725a4630d Added a function to the disassembler that checks
(from the mnemonic) whether an instruction is a
branch.  This function's result is exposed through
DoesBranch().

llvm-svn: 151953
2012-03-02 23:22:53 +00:00
Greg Clayton ba3c8df4d9 Bumped Xcode project versions for lldb-121 and debugserver-172
llvm-svn: 151948
2012-03-02 22:36:23 +00:00
Greg Clayton 653028fe36 <rdar://problem/10974749>
Hack our project file to deal with new default compiler driver flags that were making builds fail.

llvm-svn: 151946
2012-03-02 22:28:46 +00:00
Jim Ingham a748664c9d And remove the control character that somehow found its way into the last checkin...
llvm-svn: 151941
2012-03-02 21:35:20 +00:00
Jim Ingham bc4abcb2cb For Sean: handle the case where you are asked for a 0 byte allocation with 0 alignment.
llvm-svn: 151940
2012-03-02 21:34:28 +00:00
Johnny Chen 213ba7c7c3 rdar://problem/10652076
Add logic to GDBRemoteRegisterContext class to be able to read/write a "composite" register
which has "primordial" registers as its constituents.  In particular, Read/WriteRegisterBytes()
now delegate to Get/SetPrimordialRegister() helper methods to read/write register contents.

Also modify RegisterValue class to be able to parse "register write" string value for the
NEON quadword registers which is displayed as a vector of uint8's.

Example:

(lldb) register write q0 "{0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}"
(lldb) register read q0
q0 = {0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}
(lldb) register read --format uint8_t[] s0
s0 = {0x01 0x02 0x03 0x04}
(lldb) register read --format uint8_t[] d0
d0 = {0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08}
(lldb) register read --format uint8_t[] d1
d1 = {0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10}

llvm-svn: 151939
2012-03-02 21:32:50 +00:00
Sean Callanan 72ae832f1b Prevent assertions because of zero-sized sections,
while still ensuring that the sections get remote
allocations.

llvm-svn: 151936
2012-03-02 20:59:34 +00:00
Enrico Granata 242d9838c6 Adding a test case for a bug where types CFGregorianDate and CFRange were improperly uniqued by LLDB such that both where shown as having the same structure contents - The bug itself is fixed in TOT but we want to catch regressions ASAP
llvm-svn: 151929
2012-03-02 18:47:26 +00:00
Enrico Granata cdf38a7ffb Removing a spurious print statement leftover from debugging the formatter code
llvm-svn: 151928
2012-03-02 18:35:06 +00:00
Greg Clayton 4a49a1ff7a Bumping Xcode project versions for lldb-120 and debugserver-171.
llvm-svn: 151924
2012-03-02 17:44:37 +00:00
Greg Clayton da171f1176 Fixed Symbol objects being able to get their byte size.
llvm-svn: 151878
2012-03-02 03:01:16 +00:00
Jim Ingham 85c13d788d Make sure breakpoint partial name matches occur on namespace boundaries.
<rdar://problem/10720345> "break set -n" name matching should only match at namespace boundaries

llvm-svn: 151876
2012-03-02 02:24:42 +00:00
Enrico Granata 8dfdd89433 having std::vector still show children even if it now has a builtin summary - having the std::vector test case deal with the fact that we now have said builtin summary
llvm-svn: 151870
2012-03-02 01:14:02 +00:00
Sean Callanan e8c0cfbb00 Improved the type's handling of anonymous structs,
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
2012-03-02 01:03:45 +00:00
Han Ming Ong 04cf1bad35 <rdar://problem/10967188>
When using launch_info for launching with a target already set, we should just prepend the target's path as the first argument.

llvm-svn: 151867
2012-03-02 01:02:04 +00:00
Enrico Granata 8d5c83f6ef (a) adding formatters for:
NSTimeZone and CFTimeZonRef
 SEL and related types
 CFGregorianDate

llvm-svn: 151866
2012-03-02 00:55:53 +00:00
Greg Clayton 123edca0a9 <rdar://problem/10967107>
Don't try and unique anonymous struct/union/class types.

llvm-svn: 151863
2012-03-02 00:07:15 +00:00
Greg Clayton 29c5e5bb7d Bumped Xcode project version for lldb-119 and debugserver-170.
llvm-svn: 151836
2012-03-01 21:07:11 +00:00
Greg Clayton f4356d00f3 Hardcode the identifier and the execution name in debugserver since we put this into a section and not Xcode variable expansion happens.
llvm-svn: 151835
2012-03-01 21:06:20 +00:00
Jim Ingham 6b35c86fbe Purge a couple more uses of stack count for stepping.
llvm-svn: 151833
2012-03-01 20:01:22 +00:00
Enrico Granata 74ec8f9c50 this fixes unicode strings handling in 32-bit mode on Lion
llvm-svn: 151831
2012-03-01 19:48:54 +00:00
Greg Clayton 3442d46eac <rdar://problem/10963899>
Allow debugserver to be built on a newer kernel and still allow debugging on
older kernels.

llvm-svn: 151827
2012-03-01 19:35:09 +00:00
Enrico Granata 896cd1d3e6 (a) adding an introspection formatter for NS(Mutable)IndexSet
(b) fixes and improvements to the formatters for NSDate and NSString
(c) adding an introspection formatter for NSCountedSet
(d) making the Objective-C formatters test cases pass on both 64 and 32 bit
    one of the test cases is marked as expected failure on i386 - support needs to be added to the LLDB core for it to pass

llvm-svn: 151826
2012-03-01 19:32:33 +00:00
Jim Ingham d95752f240 Add an option to sort by packet count (rather than time). Also print the count,
and to print the total count & time in the header.

llvm-svn: 151823
2012-03-01 18:57:51 +00:00
Greg Clayton bf360a3808 Patch to fix GCC build from Dmitry Vyukov.
llvm-svn: 151820
2012-03-01 17:47:51 +00:00
Greg Clayton 221bae896c Fixed the incorrect LLVM configuration to be "Release".
llvm-svn: 151802
2012-03-01 04:44:54 +00:00
Enrico Granata 0c489f58cd 1) solving a bug where, after Jim's fixes to stack frames, synthetic children were not recalculated when necessary, causing them to get out of sync with live data
2) providing an updated list of tagged pointers values for the objc_runtime module - hopefully this one is final
3) changing ValueObject::DumpValueObject to use an Options class instead of providing a bulky list of parameters to pass around
   this change had been laid out previously, but some clients of DumpValueObject() were still using the old prototype and some arguments
   were treated in a special way and passed in directly instead of through the Options class
4) providing new GetSummaryAsCString() and GetValueAsCString() calls in ValueObject that are passed a formatter object and a destination string
   and fill the string by formatting themselves using the formatter argument instead of the default for the current ValueObject
5) removing the option to have formats and summaries stick to a variable for the current stoppoint
   after some debate, we are going with non-sticky: if you say frame variable --format hex foo, the hex format will only be applied to the current command execution and not stick when redisplaying foo
   the other option would be full stickiness, which means that foo would be formatted as hex for its whole lifetime
   we are open to suggestions on what feels "natural" in this regard

llvm-svn: 151801
2012-03-01 04:24:26 +00:00
Greg Clayton 7d436b8994 Changed the default installation paths for lldb for BuildAndIntegration builds.
llvm-svn: 151799
2012-03-01 04:16:38 +00:00
Jason Molenda f9196a259c Remove the sanity checks from RegisterContextLLDB::InitializeZerothFrame
which require a valid CFA address to create a stack frame.  On connecting
to just-starting-up hardware we may have a stack pointer/frame pointer of 0
but we should still create a stack frame so other code in lldb can retrieve
register values via a stackframe.

llvm-svn: 151796
2012-03-01 03:19:01 +00:00
Jim Ingham 376c485493 If the unwinder fails to make us a frame 0, make one by hand from the SP & PC.
llvm-svn: 151793
2012-03-01 02:53:40 +00:00
Sean Callanan 6d1c372c04 Added a testcase verifying that forward declarations
of Objective-C classes in header files are correctly
resolved in the final type.

llvm-svn: 151790
2012-03-01 02:06:31 +00:00
Sean Callanan d5f33a86f0 Updated LLVM to take a new MC JIT that supports
allocations by section.  We install these sections
in the target process and inform the JIT of their
new locations.

Also removed some unused variable warnings.

llvm-svn: 151789
2012-03-01 02:03:47 +00:00