Commit Graph

4618 Commits

Author SHA1 Message Date
Johnny Chen 8c9739eeda Fixed a bug with the r153228 check-in earlier today in that the cached watchpoint
member variables were not reset appropriately.

llvm-svn: 153239
2012-03-22 05:10:43 +00:00
Sean Callanan 3f85b3205a Fixed a bug in the disassembler where we did
not properly print the load addresses for
PC-relative jumps.

llvm-svn: 153233
2012-03-22 01:10:50 +00:00
Greg Clayton f8712de58c Since we are having issues with the new LLVM MC disassembler, we can have
them both installed with the LLVM MC version being the default. I renamed the
name of the LLVM MC disassembler plug-in to "llvm-mc" and the LLVM enhanced
disassembly plug-in to "llvm-edis" and they can both be installed for now.

To use the "llvm-edis" disassembler, you can just specify it while disassembling:

(lldb) disassemble --plugin llvm-edis --name main
(lldb) disassemble --plugin llvm-mc --name main

This will allow us to compare the output of the two disassembler and eventually
deprecate the old one when the new one is ready. But it does use the new disassembler
by default so we continue to test it on a daily basis.

llvm-svn: 153231
2012-03-22 00:49:15 +00:00
Johnny Chen 7cb09b61b2 WIP snapshot of hardware watchpoints for arm. A simple watchpoint has triggered.
However, the debugserver cannot get past the instruction which triggered the watchpoint.
So a workaround is in place for the time being which disables the triggered watchpoint
before resuming.

Lots of commented out printf's remain in the source which needs to be cleaned up.

WIP rdar://problem/9667960

llvm-svn: 153228
2012-03-22 00:08:13 +00:00
Greg Clayton 02c322c575 Commit missing function prototype.
llvm-svn: 153223
2012-03-21 22:50:54 +00:00
Johnny Chen 72ee62e030 Add missing watchpoint stop info creation logic for arm on the debugger side.
WIP for rdar://problem/9667960

llvm-svn: 153206
2012-03-21 18:28:25 +00:00
Johnny Chen 907c233591 Add "frame info" command to the "Examining Thread State" section, as suggested by Andrew Trick.
llvm-svn: 153204
2012-03-21 18:14:37 +00:00
Sean Callanan e2d4748ae3 Added some hardening to make sure that we don't
use QualType contents unchecked.

llvm-svn: 153201
2012-03-21 17:13:20 +00:00
Sean Callanan 8ce585f8f1 Added a local patch to reflect an LLVM fix for
relocations (LLVM revision 153147).  Now when
we report section locations in the target process,
LLVM will apply both those relocations whose
targets are in that section and those relocations
which reside in that section and point to other
sections.

llvm-svn: 153199
2012-03-21 16:42:08 +00:00
Greg Clayton 2af282a16b Fixed the ability to load a module from a path by using just a UUID. After
the migration to ModuleSpec objects this broke and is now fixed.

Also fixed a case in the darwin kernel dynamic loader where we just need to
trust the load address of the kernel if we can't read it from memory.

llvm-svn: 153164
2012-03-21 04:25:00 +00:00
Sean Callanan 61b33f7464 Fixed some potential null-pointer bugs in the
expression parser code.

llvm-svn: 153128
2012-03-20 21:11:12 +00:00
Enrico Granata 50c88593d6 Headers cleanup
llvm-svn: 153113
2012-03-20 19:33:01 +00:00
Enrico Granata 84f4f84c68 More #includes removed
llvm-svn: 153108
2012-03-20 19:14:34 +00:00
Enrico Granata 22bd67751e Removing spurious <locale> include
llvm-svn: 153107
2012-03-20 18:56:47 +00:00
Enrico Granata 0b45669b6b Removing spurious <ostream> include
llvm-svn: 153106
2012-03-20 18:52:57 +00:00
Greg Clayton b3a40ba812 Platforms can now auto-select themselves if you specify a full target triple when doing a "target create" command.
Each platform now knows if it can handle an architecture and a platform can be found using an architecture. Each platform can look at the arch, vendor and OS and know if it should be used or not.

llvm-svn: 153104
2012-03-20 18:34:04 +00:00
Enrico Granata c2c4e34a46 Fixing a bug where child names in filters were not matched properly
llvm-svn: 153101
2012-03-20 18:02:56 +00:00
Greg Clayton 5400bad64d <rdar://problem/11078937>
LLDB can match incorrect line table entries when an address is between two valid line entries (in the gap between the valid debug info), now it doesn't!

llvm-svn: 153077
2012-03-20 02:15:45 +00:00
Greg Clayton 9ff1ba2546 Make sure that if a UUID was passed in, and we found a match, that should be enough for us.
llvm-svn: 153076
2012-03-20 01:31:19 +00:00
Greg Clayton 2b1bc868a0 Added a fix to the crash log script that allows you to locate and load a binary from any location and _then_ do the symbolication. Something like:
(lldb) file /path/to/file.so
(lldb) crashlog crash.log
....

Then if the file.so has already been loaded it will use the one that is already in LLDB without trying to match up the paths.

llvm-svn: 153075
2012-03-20 01:30:27 +00:00
Johnny Chen e344486e63 Add a '-E' option to the test driver for the purpose of specifying some extra CFLAGS
to pass to the toolchain in order to build the inferior programs to be run/debugged
duirng the test suite.  The architecture might dictate some special CFLAGS which are
more easily specified in a central place (like the command line) instead of inside
make rules.

For Example,

./dotest.py -v -r /shared/phone -A armv7 -E "-isysroot your_sdk_root" functionalities/watchpoint/hello_watchpoint

will relocate the particular test directory ('functionalities/watchpoint/hello_watchpoint' in this case) to a
new directory named '/shared/phone'.  The particular incarnation of the architecture-compiler combination of the
test support files are therefore to be found under:

/shared/phone.arch=armv7-compiler=clang/functionalities/watchpoint/hello_watchpoint

The building of the inferior programs under testing is now working.

The actual launching/debugging of the inferior programs are not yet working,
neither is the setting of a watchpoint on the phone.

llvm-svn: 153070
2012-03-20 00:33:51 +00:00
Enrico Granata a7a3a4c79e Editing documentation to reflect recent changes in the formatters support
llvm-svn: 153068
2012-03-19 23:57:06 +00:00
Enrico Granata 86cc982974 Massive enumeration name changes: a number of enums in ValueObject were not following the naming pattern
Changes to synthetic children:
 - the update(self): function can now (optionally) return a value - if it returns boolean value True, ValueObjectSyntheticFilter will not clear its caches across stop-points
   this should allow better performance for Python-based synthetic children when one can be sure that the child ValueObjects have not changed
 - making a difference between a synthetic VO and a VO with a synthetic value: now a ValueObjectSyntheticFilter will not return itself as its own synthetic value, but will (correctly)
   claim to itself be synthetic
 - cleared up the internal synthetic children architecture to make a more consistent use of pointers and references instead of shared pointers when possible
 - major cleanup of unnecessary #include, data and functions in ValueObjectSyntheticFilter itself
 - removed the SyntheticValueType enum and replaced it with a plain boolean (to which it was equivalent in the first place)
Some clean ups to the summary generation code
Centralized the code that clears out user-visible strings and data in ValueObject
More efficient summaries for libc++ containers

llvm-svn: 153061
2012-03-19 22:58:49 +00:00
Greg Clayton f9be693369 <rdar://problem/11072382>
Fixed a case where the source path remappings on the module were too expensive to
use when we try to verify (stat the file system) that the remapped path points to
a valid file. Now we will use the lldb_private::Module path remappings (if any) when
parsing the debug info without verifying that the paths exist so we don't slow down
line table parsing speeds.

llvm-svn: 153059
2012-03-19 22:22:41 +00:00
Benjamin Kramer 44057c3d01 Include limits.h for PATH_MAX.
llvm-svn: 153013
2012-03-18 13:06:54 +00:00
Jason Molenda be55f383f0 Bump to lldb-133.
Remove unused entitlements plist from debugserver.

llvm-svn: 152973
2012-03-17 03:27:04 +00:00
Enrico Granata 3713cadd09 Changed the URL to the CFString summary provider; slightly reworded the relevant piece of content
llvm-svn: 152972
2012-03-17 02:14:46 +00:00
Enrico Granata 0fddd5631d Pointing users to a new example of synthetic children provider en lieu of the old StdVector example which was removed earlier today
llvm-svn: 152971
2012-03-17 02:04:20 +00:00
Enrico Granata ab8674f99f Adding a new example of synthetic children provider
llvm-svn: 152970
2012-03-17 02:02:03 +00:00
Sean Callanan 7de79f3297 Updated LLVM/Clang to take a patch that fixes some
ARM assembly syntax in LLVM.  This allows LLDB to
build with the latest Clang.

llvm-svn: 152965
2012-03-17 00:02:03 +00:00
Johnny Chen 1b72f09150 Export the APIs submitted by Dawn to the Python bindings. Add a simple test case for the SBModule.compile_unit_iter() API.
llvm-svn: 152952
2012-03-16 21:55:42 +00:00
Johnny Chen e025e30a0e Fix FRAMEWORK_SEARCH_PATHS for iOS builds.
llvm-svn: 152948
2012-03-16 21:25:14 +00:00
Johnny Chen 873a7a4b64 Patch from dawn@burble.org:
GetSupportFileAtIndex(), GetNumSupportFiles(), FindSupportFileIndex():
   Add API support for getting the list of files in a compilation unit.
GetNumCompileUnits(), GetCompileUnitAtIndex():
   Add API support for retrieving the compilation units in a module.

llvm-svn: 152942
2012-03-16 20:46:10 +00:00
Johnny Chen 531c085815 Fix a bug in getRunOptions() where there was no space between the arch spec and the compiler spec.
llvm-svn: 152941
2012-03-16 20:44:00 +00:00
Sean Callanan 9f9ab86581 Updating Xcode project version numbers for lldb-132 and debugserver-182
llvm-svn: 152901
2012-03-16 06:05:58 +00:00
Sean Callanan d6a4b2cdb2 Integrated two high-value Clang fixes:
- Clang now completes all Objective-C objects (if
  they are not already complete, and they have
  external lexical sources) during structure
  layout, avoiding a LLDB crash.

- The Clang Decl printer handles reference types
  correctly.  This prevents LLDB from crashing
  when expression logging is enabled.

llvm-svn: 152897
2012-03-16 05:34:53 +00:00
Enrico Granata 676d3b0682 Warn about an example script being obsoleted by new native features and just an example
llvm-svn: 152890
2012-03-16 01:25:01 +00:00
Enrico Granata 797017a4c1 Deleting obsolete files
llvm-svn: 152888
2012-03-16 01:15:31 +00:00
Johnny Chen a113abce1d rdar://problem/11057400
Add documentation for watchpoint commands.

llvm-svn: 152882
2012-03-16 00:44:02 +00:00
Greg Clayton d804d28556 <rdar://problem/8196933>
Use the metadata in the dSYM bundle Info.plist to remap source paths when they keys are available.

llvm-svn: 152836
2012-03-15 21:01:31 +00:00
Johnny Chen 3bc8ae4014 Add a test case to go with <rdar://problem/11052829> and svn check-in r152809.
llvm-svn: 152825
2012-03-15 19:10:00 +00:00
Johnny Chen f087c8255e Add test case associated with:
rdar://problem/11034702

For the time being, skip the relevant disassemble action which resulted in a crash.

Minor modification (print out format) to the existing TestDisassembleRawBytes.py test file.

llvm-svn: 152822
2012-03-15 18:23:59 +00:00
Greg Clayton 0c94313d20 <rdar://problem/11052829>
Fixed a case where if you have a argument stirng that ends with a '\' character, it would infinite loop while consuming all of your memory.

Also fixed a case where non-quote terminated strings would inefficiently be handled.

llvm-svn: 152809
2012-03-15 17:10:48 +00:00
Han Ming Ong 2ee44a1e38 <rdar://11033946>
Made sure that the root XPC service validate the right before starting the service. The right is created and authenticated by clients (in this case, lldb) and transferred over for validiation.

llvm-svn: 152802
2012-03-15 15:37:50 +00:00
Sean Callanan cf12862a9a Strengthened LLDB's completion of object types.
Now when LLDB reports a variable, it has a
complete type.  Similarly, when it reports
members of a struct, it completes their types.
Also, when it creates the result variable for
an expression, it ensures that variable's type
is complete.

This ensures compliance with Clang's
expectations, preventing potential crashes.

llvm-svn: 152771
2012-03-15 01:53:17 +00:00
Greg Clayton 1b02c17391 <rdar://problem/11049371>
http://llvm.org/bugs/show_bug.cgi?id=12232

Fixed a case where a missing "break" in a switch statement could cause an assertion to fire and kill the debug session.

The fix was derived from the findings of Andrea Bigagli, thanks Andrea.

llvm-svn: 152741
2012-03-14 21:00:47 +00:00
Enrico Granata a88fdd3cdd Committing a patch from Filipe Cabecinhas
llvm-svn: 152733
2012-03-14 18:52:33 +00:00
Johnny Chen 24b5b8b7b8 Remove a debug statement.
llvm-svn: 152732
2012-03-14 18:35:38 +00:00
Sean Callanan cc5039dd9e Updating Xcode project version numbers for lldb-131 and debugserver-181
llvm-svn: 152726
2012-03-14 17:15:39 +00:00
Benjamin Kramer e6afc77a1b Makefile build: clang now depends on libclangEdit.
llvm-svn: 152710
2012-03-14 11:03:46 +00:00