Commit Graph

3337 Commits

Author SHA1 Message Date
Johnny Chen 11309a39ea Fill out implementation of Enable/DisableWatchpoint() for ProcessGDBRemote class (Not Tested Yet).
Also update the signature of WatchpointLocation::SetEnable() to take a bool as input arg.

llvm-svn: 139198
2011-09-06 22:38:36 +00:00
Johnny Chen 1ac383c68d Test should print to stdout only if self.TraceOn() is True.
llvm-svn: 139174
2011-09-06 20:32:42 +00:00
Johnny Chen 1d6bad0b47 Add a data type WatchpointLocationList to the repository. A Target contains an instance of watchpoint location list.
Also add a typefed for WatchpointLocationSP to lldb-forward-rtti.h.

llvm-svn: 139166
2011-09-06 20:05:25 +00:00
Johnny Chen 86f97a417d DNBBreakpoint::SetEnabled() should take a bool, not a uint32_t, as its input argument.
Plus for watchpoint related functions, add new macros INVALID_NUB_WATCH_ID and
NUB_WATCH_ID_IS_VALID and use them, instead.

llvm-svn: 139163
2011-09-06 19:52:49 +00:00
Enrico Granata 9128ee2f7a Redesign of the interaction between Python and frozen objects:
- 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
2011-09-06 19:20:51 +00:00
Johnny Chen 8ed0ef9bae Change the signature of WatchpointLocation ctor so that the second param becomes
'size_t size', instead of 'lldb::tid_t tid'.  Pass size to the StoppointLocation
ctor as well.

llvm-svn: 139131
2011-09-06 02:52:28 +00:00
Johnny Chen 1bd08dd878 Watchpoint work in progress:
Add a virtual method GetHardwareWatchpointHit() to the DNBArchProtocol base class
which consults the architecture to return the watchpoint hit; otherwise return an
invalid index.

Add impl. of the method to X86_64 and I386 subclasses, plus reset the debug status
register before we resume execution of the inferior thread.

llvm-svn: 139034
2011-09-02 21:13:07 +00:00
Greg Clayton 9e315589e9 Added alpha .debug_names and .debug_types support in the DWARF parser.
llvm-svn: 138996
2011-09-02 04:03:59 +00:00
Greg Clayton afacd14b0b Added the ability for DWARF locations to use the ABI plug-ins to resolve
register names when dumping variable locations and location lists. Also did
some cleanup where "int" types were being used for "lldb::RegisterKind"
values.

llvm-svn: 138988
2011-09-02 01:15:17 +00:00
Greg Clayton aeecd9fd55 Added files I forget to checkin with my last checkin.
llvm-svn: 138981
2011-09-01 23:30:34 +00:00
Greg Clayton f9eec20bd3 Added support for accessing and loading our new .debug_names and .debug_types
DWARF accelerator table sections to the DWARF parser. These sections are similar
to the .debug_pubnames and .debug_pubtypes, but they are designed to be hash tables
that are saved to disc in a way that the sections can just be loaded into memory
and used without any work on the debugger side. The .debug_pubnames and .debug_pubtypes
sections are not ordered, contain a copy of the name in the section itself which
makes these sections quite large, they only include publicly exported names (so no
static functions, no types defined inside functions), many compilers put different
information in them making them very unreliable so most debugger ignore these sections
and parse the DWARF on their own. The tables must also be parsed and sorted in order 
to be used effectively. The new sections can be quickly loaded and very efficiently be used 
to do name to DIE lookups with very little up front work. The format of these new
sections will be changing while we work out the bugs, but we hope to have really 
fast name to DIE lookups soon.

llvm-svn: 138979
2011-09-01 23:16:13 +00:00
Greg Clayton f39c67685b Forgot to write out the NULL terminator when putting C string value into
a data using DataEncoder.

Added DataEncoder to the lldb-forward.h file.

llvm-svn: 138950
2011-09-01 18:13:54 +00:00
Greg Clayton 9482865f2a Added a DataEncoder class for the new IR evaluation expression parser so it
can reserve a block of memory and store stuff into it.

llvm-svn: 138949
2011-09-01 18:10:09 +00:00
Jim Ingham 3555b5d717 disassemble with no arguments disassembles at the pc. Also got "disassemble -f" to work, that had gotten broken at some point in the past.
llvm-svn: 138929
2011-09-01 01:11:04 +00:00
Johnny Chen 8d31e5eac5 Renaming: from IsVacantWatchpoint() to IsWatchpointVacant().
llvm-svn: 138907
2011-08-31 21:44:56 +00:00
Johnny Chen a18460635a Renamed the helper method to ClearWatchpointHits() for clarity of its purpose.
llvm-svn: 138899
2011-08-31 21:19:39 +00:00
Johnny Chen e0d4208a8b Add a couple of helper methods to check/clear the debug status register
which contains the watchpoint hit information.

llvm-svn: 138881
2011-08-31 19:05:55 +00:00
Johnny Chen 205395e7e0 Fix the shift amount applied to size_and_rw_bits() for debug control register,
which did not take into account the hardware index.

llvm-svn: 138867
2011-08-31 17:51:43 +00:00
Johnny Chen edce1f3f7d Update comments.
llvm-svn: 138863
2011-08-31 17:29:29 +00:00
Johnny Chen 0399ec26c0 Watchpoint work in progress: add helper methods to DNB arch impl for I386 to implment Enable/DisableHardwareWatchpoint.
llvm-svn: 138847
2011-08-31 00:50:10 +00:00
Johnny Chen ebb9bb4175 Watchpoint work in progress: add helper methods to DNB arch impl for X86_64 to implment Enable/DisableHardwareWatchpoint.
llvm-svn: 138844
2011-08-31 00:27:53 +00:00
Johnny Chen 2cf3222029 Add stubs of incomplete watchpoint implementation with "FIXME" markers.
llvm-svn: 138790
2011-08-30 01:30:03 +00:00
Greg Clayton 9414a367a1 Added the debug registers for i386 and x86_64 in preparation for watchpoints.
llvm-svn: 138770
2011-08-29 21:49:22 +00:00
Johnny Chen c0705f0b4f Remove an extra break statement.
llvm-svn: 138763
2011-08-29 21:01:50 +00:00
Johnny Chen 2bfaa32990 Patch by Filipe for FreeBSD platform plugin!
llvm-svn: 138761
2011-08-29 20:43:14 +00:00
Jim Ingham d3d25d9109 Fix a bunch of places where we were passing Stream *'s but were
never checking them for NULL.  Pass a reference instead.

llvm-svn: 138694
2011-08-27 01:24:54 +00:00
Jim Ingham a6c422b7de Don't change the host's environment, just append our Python Directory
directly to the one in sys.

llvm-svn: 138693
2011-08-27 01:24:08 +00:00
Jim Ingham 650543f9ba Hold onto a shared pointer to the frame CommandObjectFrameVariable::Execute is
analyzing so it won't get deleted on us if a formatter runs code.

llvm-svn: 138692
2011-08-27 01:22:52 +00:00
Johnny Chen 24281181bd Micro-optimization: Update the shift amount only when needed.
llvm-svn: 138678
2011-08-26 23:51:22 +00:00
Johnny Chen 4cd2a8e2f4 Update the test case in light of recent change of LLDB-Info.plist to track Apple Generic Version number
from the Xcode project file.

llvm-svn: 138677
2011-08-26 23:50:10 +00:00
Greg Clayton 8f258513a1 Fixed an assertion that could happen if we happened to parse a mach-o object
file that had a symbol that had a section specified where the section had
zero size. We now honor this section definition for the symbol and don't
assert anymore.

llvm-svn: 138646
2011-08-26 20:01:35 +00:00
Jim Ingham 318c9f2240 Move DIE location reporting into the DWARFDebugInfo class, use it from there in SymbolFileDWARF::ParseType (and eventually in other interesting places as well.)
llvm-svn: 138644
2011-08-26 19:44:13 +00:00
Greg Clayton 05562d1e5c Added code to test hash bucket sizes for an DWARF index that we can write
to a file.

llvm-svn: 138620
2011-08-26 02:44:58 +00:00
Johnny Chen d890bfc962 Add a new attribute self.lldbHere, representing the fullpath to the 'lldb' executable
built locally from the source tree.  This is distinguished from self.lldbExec, which
can be used by test/benchmarks to measure the performances against other debuggers.

You can use environment variable LLDB_EXEC to specify self.lldbExec to the dotest.py
test driver, otherwise it is going to be populated with self.lldbHere.

Modify the regular tests under test dir, i.e., not test/benchmarks, to use self.lldbHere.
Also modify the benchmarks tests to use self.lldbHere when it needs an 'lldb' executable
with debug info to do the performance measurements.

llvm-svn: 138608
2011-08-26 00:00:01 +00:00
Jim Ingham 16746d1f97 Add logging to SymbolFileDWARF::ParseType so that we can tell the type/comp_unit/obj_file were being processed when something goes wrong...
llvm-svn: 138600
2011-08-25 23:21:43 +00:00
Johnny Chen 943ddb730b Modify the impl of ThreadList::GetSelectedThread() so that it tries to fetch the
m_selected_tid thread first, check to see if it is valid (might be null if the
thread just exited), and if not select/return the 0th thread instead.

llvm-svn: 138591
2011-08-25 21:59:59 +00:00
Johnny Chen 689053770b Modify the loggings output oracle to fix test suite failure, after the recent change to CommandInterpreter.cpp.
llvm-svn: 138590
2011-08-25 21:51:45 +00:00
Johnny Chen bbfa68b090 Make ThreadList::GetSelectedThread() select and return the 0th thread if there's no
currently selected thread.  And update the call sites accordingly.

llvm-svn: 138577
2011-08-25 19:38:34 +00:00
Johnny Chen 40e3592961 Initializes (uint64_t)buf variable, patch by Filipe Cabecinhas!
llvm-svn: 138565
2011-08-25 17:40:39 +00:00
Johnny Chen 2c595273e0 Fix compilation error with DEBUG_STACK_FRAMES defined, patch by Filipe Cabecinhas!
With some slight modification.

llvm-svn: 138563
2011-08-25 17:27:02 +00:00
Greg Clayton 447ff1bfdc Make the CFBundleShortVersionString and CFBundleVersion automatically track
the Apple Generic Version number from the Xcode project.

llvm-svn: 138549
2011-08-25 04:13:59 +00:00
Jason Molenda 289673c052 Change old "settings set frame-prompt" and thread-prompt
to frame-format and thread-format.

llvm-svn: 138544
2011-08-25 02:46:44 +00:00
Jason Molenda b1ad65c548 Emit an error message if we're unable to write a value to a register.
(in addition to the previous error message if the value could not be 
parsed as a numbe).  These both generate reasonable errors now -
reg write rip 0x500000000000000000000a
reg write rip 0x5jjjj

llvm-svn: 138543
2011-08-25 01:59:13 +00:00
Jason Molenda bfb36ff9ea Include lldb/commands as a valid logging type in the
'log list' output.

Remove an extraneous \n from one of the lldb/commands
log line.

Add an lldb/commands log indicating whether the command
was successful or not.

llvm-svn: 138530
2011-08-25 00:20:04 +00:00
Greg Clayton e1be996baa Fix so we don't create C++ classes for all objective C classes when we have a
objective C++ source file.

llvm-svn: 138527
2011-08-24 23:50:00 +00:00
Jim Ingham 0f35ac2a54 The Compilation Unit language was being stored in a variable called "class_language"... Changed that to "cu_language".
llvm-svn: 138523
2011-08-24 23:34:20 +00:00
Johnny Chen dd6be27427 Remove skip decorator now that crash has been fixed.
Fix a compie warning for main.cpp.

llvm-svn: 138503
2011-08-24 22:30:47 +00:00
Sean Callanan 737330c1de Fixed a bug where the target for an expression was
not set if the containing function could not be
found.  This caused LLDB to crash later in
expression parsing.

llvm-svn: 138499
2011-08-24 22:18:12 +00:00
Johnny Chen b7bdd1001e Pretty print the run options for dumpSessionInfo(self) client.
llvm-svn: 138466
2011-08-24 19:48:51 +00:00
Johnny Chen ba3b99ef1c Fix compile warning.
llvm-svn: 138465
2011-08-24 19:35:24 +00:00
Johnny Chen 3e15c4d50b Don't display the stdout if not in TraceOn(), i.e, '-t option, mode.
llvm-svn: 138458
2011-08-24 18:19:50 +00:00
Johnny Chen 4ab4a9b897 The plugin impl of getCompiler() should be in unison with the Makefile.rules change.
llvm-svn: 138454
2011-08-24 18:12:53 +00:00
Johnny Chen a68135aed0 Remove the expectedFailure decorator. The test has been passing for some time now.
llvm-svn: 138452
2011-08-24 18:10:09 +00:00
Enrico Granata 65a6a6bea4 Moved the test code for Python commands out of the test case for aliases, into its own dedicated test case (one fill was still lurking in the old folder)
llvm-svn: 138446
2011-08-24 17:46:38 +00:00
Enrico Granata cb2921dbd3 Moved the test code for Python commands out of the test case for aliases, into its own dedicated test case
llvm-svn: 138444
2011-08-24 17:45:40 +00:00
Enrico Granata 45403f31f1 Documentation edits: correcting typos, adding information and general tweaks for readability
llvm-svn: 138442
2011-08-24 17:12:47 +00:00
Enrico Granata c5df00f0b9 Documentation on dynamic types (WIP)
llvm-svn: 138425
2011-08-24 04:53:31 +00:00
Enrico Granata 83cfc9abf8 Minor documentation changes (WIP)
llvm-svn: 138423
2011-08-24 01:49:09 +00:00
Enrico Granata 64997d6c0e More documentation changes (WIP)
llvm-svn: 138421
2011-08-24 01:32:46 +00:00
Johnny Chen 6d1010cb5c Patch by Filipe to build lldb usng 'make'!
llvm-svn: 138403
2011-08-23 22:36:23 +00:00
Johnny Chen 04adb62569 Uniquefy the various data-formatter test class names so that:
./dotest.py -v -f DataFormatterTestCase.test_with_dsym_and_run_command

will not end up running 14 tests.

llvm-svn: 138399
2011-08-23 22:32:45 +00:00
Johnny Chen 4aa4f5dc0a Skip these two cases temporarily while investigating the crash on OSX Lion with clang as the compiler.
llvm-svn: 138393
2011-08-23 22:10:17 +00:00
Johnny Chen 597cbbbd45 Make clang the default compiler for building the test programs.
llvm-svn: 138391
2011-08-23 21:54:10 +00:00
Enrico Granata 129c3db6a7 Fixing commas in enums (build breaker on GCC) as reported by Filipe Cabecinhas
llvm-svn: 138385
2011-08-23 21:29:50 +00:00
Enrico Granata 88da35f881 Improved the user-friendliness of errors shown by the summary feature in certain areas
Renamed format "signed decimal" to be "decimal". "unsigned decimal" remains unchanged:
 - the name "signed decimal" was interfering with symbol %S (use summary) in summary strings.
   because of the way summary strings are implemented, this did not really lead to a bug, but
   simply to performing more steps than necessary to display a summary. this is fixed.
Documentation improvements (more on synthetic children, some information on filters). This is still a WIP.

llvm-svn: 138384
2011-08-23 21:26:09 +00:00
Sean Callanan bccce81340 Added support for persistent types to the
expression parser.  You can use a persistent
type like this:

(lldb) expr struct $foo { int a; int b; };
(lldb) struct $foo i; i.a = 2; i.b = 3; i
($foo) $0 = {
  (int) a = 2
  (int) b = 3
}

typedefs work similarly.

This patch affects the following files:

test/expression_command/persistent_types/*
  A test case for persistent types,
  in particular structs and typedefs.

ClangForward.h
  Added TypeDecl, needed to declare some
  functions in ASTResultSynthesizer.h

ClangPersistentVariables.[h,cpp]
  Added a list of persistent types to the
  persistent variable store.

ASTResultSynthesizer.[h,cpp]
  Made the AST result synthesizer iterate
  across TypeDecls in the expression, and
  record any persistent types found.  Also
  made a minor documentation fix.

ClangUserExpression.[h,cpp]
  Extended the user expression class to
  keep the state needed to report the
  persistent variable store for the target
  to the AST result synthesizers. 

  Also introduced a new error code for
  expressions that executed normally but
  did not return a result.

CommandObjectExpression.cpp
  Improved output for expressions (like 
  declarations of new persistent types) that
  don't return a result.  This is no longer
  treated as an error.

llvm-svn: 138383
2011-08-23 21:20:51 +00:00
Enrico Granata db3485cd06 Short option for --summary-string in 'type summary add' is now -s. This might be a breaking change for those who have summaries defined.
llvm-svn: 138331
2011-08-23 16:13:35 +00:00
Johnny Chen 49996274fd Add some expected failure decorators with radar numbers.
llvm-svn: 138316
2011-08-23 01:00:14 +00:00
Enrico Granata dc9407308e Additional code cleanups ; Short option name for --python-script in type summary add moved from -s to -o (this is a preliminary step in moving the short option for --summary-string from -f to -s) ; Accordingly updated the test suite
llvm-svn: 138315
2011-08-23 00:32:52 +00:00
Enrico Granata 4b49acc5bb Separated FormatNavigator and FormatManager in two different files ; moved FormatCategoryItem enum out of FormatManager.h as a debugger-wide lldb_private enum ; minor style cleanups
llvm-svn: 138307
2011-08-22 23:45:15 +00:00
Sean Callanan 60dbc63a89 Restored the version of LLVM that we previously
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
2011-08-22 22:34:22 +00:00
Greg Clayton 944b828abb Finishing the renaming from "MacOSX-Kernel" to "Darwin-Kernel".
llvm-svn: 138283
2011-08-22 22:30:57 +00:00
Greg Clayton d4bfbc9ac0 Renaming "MacOSX-Kernel" to "Darwin-Kernel". The file contents and project
commit will come shortly after this commit.

llvm-svn: 138282
2011-08-22 22:23:48 +00:00
Johnny Chen 81ab3f5d31 Fix the 'target variable' help syntax to output one or more <variable-name>'s.
Add a simple test case for that.

llvm-svn: 138281
2011-08-22 22:22:00 +00:00
Johnny Chen 30123f114a Check the timesatmps of includees python-extensions.swig and python-wrapper.swig and force
a re-SWIG if newer than the SWIG-generated LLDBWrapPython.cpp file.

llvm-svn: 138280
2011-08-22 22:10:57 +00:00
Enrico Granata 0a976141c5 More cleanups ; Separated implementation of FormatManager from class DataVisualization as a front-end by using separate .h/.cpp files - Final aim is to break up FormatManager.h/cpp into several separate files
llvm-svn: 138279
2011-08-22 22:03:47 +00:00
Jim Ingham 586b0bd8bd Don't let Python write its .pyc files, that's not really polite...
llvm-svn: 138262
2011-08-22 19:10:09 +00:00
Enrico Granata 1d887499c4 Code cleanup and refactoring (round 4):
- FormatCategories now are directly mapped by ConstString objects instead of going through
   const char* -> ConstString -> const char*
 - FormatCategory callback does not pass category name anymore. This is not necessary because
   FormatCategory objects themselves hold their name as a member variable

llvm-svn: 138254
2011-08-22 18:36:52 +00:00
Johnny Chen 1dc9a20c16 Modify test cases to use 'target variable' to display global variables.
llvm-svn: 138247
2011-08-22 17:58:14 +00:00
Enrico Granata def5391ae5 - Support for Python namespaces:
If you have a Python module foo, in order to use its contained objects in LLDB you do not need to use
  'from foo import *'. You can use 'import foo', and then refer to items in foo as 'foo.bar', and LLDB
  will know how to resolve bar as a member of foo.
  Accordingly, GNU libstdc++ formatters have been moved from the global namespace to gnu_libstdcpp and a few
  test cases are also updated to reflect the new convention. Python docs suggest using a plain 'import' en lieu of
  'from-import'.

llvm-svn: 138244
2011-08-22 17:34:47 +00:00
Enrico Granata 23e578c94a Fixing a startup error
llvm-svn: 138237
2011-08-22 16:38:44 +00:00
Enrico Granata 5a61fc0da5 Exception-awareness for gnu_libstdcpp formatters ; Documentation update
llvm-svn: 138236
2011-08-22 16:10:25 +00:00
Greg Clayton 56d9a1b31b Added a new plug-in type: lldb_private::OperatingSystem. The operating system
plug-ins are add on plug-ins for the lldb_private::Process class that can add
thread contexts that are read from memory. It is common in kernels to have
a lot of threads that are not currently executing on any cores (JTAG debugging
also follows this sort of thing) and are context switched out whose state is
stored in memory data structures. Clients can now subclass the OperatingSystem
plug-ins and then make sure their Create functions correcltly only enable 
themselves when the right binary/target triple are being debugged. The 
operating system plug-ins get a chance to attach themselves to processes just
after launching or attaching and are given a lldb_private::Process object 
pointer which can be inspected to see if the main executable, target triple,
or any shared  libraries match a case where the OS plug-in should be used.
Currently the OS plug-ins can create new threads, define the register contexts
for these threads (which can all be different if desired), and populate and
manage the thread info (stop reason, registers in the register context) as
the debug session goes on.

llvm-svn: 138228
2011-08-22 02:49:39 +00:00
Johnny Chen 1cd81bf9e5 Fix typos in comment.
llvm-svn: 138179
2011-08-20 01:02:31 +00:00
Johnny Chen 8fff33615d Use os.walk(), available since 2.3, instead of os.path.walk(), removed in 3.0,
to walk the directory tree.  Plus, we can concentrate only on leaf nodes, i.e., files.

llvm-svn: 138178
2011-08-20 01:00:16 +00:00
Enrico Granata e73d96f659 Further fix for SWIG interoperability; making sure the Release() method of SBCommandReturnObject is called at all times
llvm-svn: 138169
2011-08-20 00:26:17 +00:00
Johnny Chen 20f19d1d02 No need to look further if the file is a symbolic link. Look for the real file.
Plus add some comments.

llvm-svn: 138159
2011-08-20 00:12:13 +00:00
Enrico Granata 274fd6e965 Fixed some SWIG interoperability issues
llvm-svn: 138154
2011-08-19 23:56:34 +00:00
Greg Clayton 756f8ae520 Fixed an issue where even if the communication object had Clear() called on
it, it could try and call through to an installed callback.

llvm-svn: 138146
2011-08-19 23:28:37 +00:00
Greg Clayton 7d47a66379 Added the ability to create a SBCommandReturnObject object from a pointer
and also to later release the ownership of the pointer object. This was needed
for SWIG interaction.

llvm-svn: 138133
2011-08-19 23:06:38 +00:00
Enrico Granata 58ad33440a Taking care of an issue with using lldb_private types in SBCommandInterpreter.cpp ; Making NSString test case work on Snow Leopard ; Removing an unused variable warning
llvm-svn: 138105
2011-08-19 21:56:10 +00:00
Enrico Granata d64d0bc0ea - Now using ${var} as the summary for an aggregate type will produce "name-of-type @ object-location" instead of giving an error
e.g. you may get "foo_class @ 0x123456" when typing "type summary add -f ${var} foo_class"
- Added a new special formatting token %T for summaries. This shows the type of the object.
  Using it, the new "type @ location" summary could be manually generated by writing ${var%T} @ ${var%L}
- Bits and pieces required to support "frame variable array[n-m]"
  The feature is not enabled yet because some additional design and support code is required, but the basics
  are getting there
- Fixed a potential issue where a ValueObjectSyntheticFilter was not holding on to its SyntheticChildrenSP
  Because of the way VOSF are being built now, this has never been an actual issue, but it is still sensible for
  a VOSF to hold on to the SyntheticChildrenSP as well as to its FrontEnd

llvm-svn: 138080
2011-08-19 21:13:46 +00:00
Johnny Chen 758f288cdd Add a Python script to locate each binary file under a root directory which matches some pathname pattern
and to invoke lldb-disasm.py on the binary file to disassemble its symbols.  The number of symbols can
be specified by, for example, '-n 10000', to specify 10,000 symbols to disassemble for each module.
By default, only 1000 symbols from each module are disassembled.

Example:

utils/test/run-dis.py -r '/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.3/Symbols' -p '^/System/Library/.*Frameworks/.*\.framework/[^/]+$'

tries to disassemble every public/private frameworks (by default only 1000 symbols are disassembled) under iOS4.3.

llvm-svn: 138078
2011-08-19 20:51:15 +00:00
Johnny Chen aeaf436e3e Revert the workaround patch in the last check in. With the local patch to LLVM, it is no longer necessary.
llvm-svn: 138046
2011-08-19 17:31:59 +00:00
Johnny Chen 4c35b711da Fix TypeError exception for re.compile().
llvm-svn: 138045
2011-08-19 17:28:25 +00:00
Sean Callanan c8ce0becb5 Whoops, accidentally committed my local scheme.
llvm-svn: 138044
2011-08-19 17:18:31 +00:00
Sean Callanan a87bee84cf Refined the rollback to LLVM, picking up a newer
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
2011-08-19 06:19:25 +00:00
Enrico Granata da616d06e9 More thorough fix for the spaces-in-typename issue
llvm-svn: 138026
2011-08-19 01:47:11 +00:00
Johnny Chen b5825b82ad Minor change for the @expectedFailureClang logic. For the non-clang test failure, re-raise
the exception to get more stack trace information.

llvm-svn: 138021
2011-08-19 01:17:09 +00:00
Enrico Granata 02b6676d2b Third round of code cleanups:
- reorganizing the PTS (Partial Template Specializations) in FormatManager.h
 - applied a patch by Filipe Cabecinhas to make LLDB compile with GCC
Functional changes:
 - fixed an issue where command type summary add for type "struct Foo" would not match any types.
   currently, "struct" will be stripped off and type "Foo" will be matched.
   similar behavior occurs for class, enum and union specifiers.

llvm-svn: 138020
2011-08-19 01:14:49 +00:00