Commit Graph

5529 Commits

Author SHA1 Message Date
Enrico Granata 7a204359dc Editing a comment to make sure people know not to blame CFString.py for CFString summary errors
llvm-svn: 163157
2012-09-04 19:18:17 +00:00
Enrico Granata f519628a10 Adding to files that were missing in the previous commit
llvm-svn: 163156
2012-09-04 18:48:21 +00:00
Enrico Granata 3467d80ba3 <rdar://problem/11485744> Implement important data formatters in C++. Have the Objective-C language runtime plugin expose class descriptors objects akin to the objc_runtime.py Pythonic implementation. Rewrite the data formatters for some core Cocoa classes in C++ instead of Python.
llvm-svn: 163155
2012-09-04 18:47:54 +00:00
Greg Clayton 5ec9645f83 Patch from Filipe Cabecinhas that uses argparse in dotest.py instead of a hand coded option. I made a few modifications:
Changed the '-A' option to also have a long option of '--arch'. This is now specified multiple times to get multiple architectures.

Old: -A i386^x86_64
New: -A i386 -A x86_64
     --arch i386 --arch x86_64
     
Changed the '-C' option to also have a long option of '--compiler'. This is now specified multiple times to get multiple compiler.

Old: -C clang^gcc
New: -C clang -C gcc
     --compiler clang --compiler gcc
llvm-svn: 163141
2012-09-04 15:42:49 +00:00
Greg Clayton dcbfd19e88 Patch from info from Daniel Malea that should fix the build on linux after fixes committed with revision 162860.
llvm-svn: 163139
2012-09-04 14:55:50 +00:00
Greg Clayton 7143f00ae9 Improved "objc_refs" a bit to be able to find all instances of a class'
superclasses on top of finding the exact class. The current attempt is still
too slow, but it lays the groundwork.

llvm-svn: 163135
2012-09-04 14:09:21 +00:00
Jim Ingham 513c6bb88c Initial check-in of "fancy" inlined stepping. Doesn't do anything useful unless you switch LLDB_FANCY_INLINED_STEPPING to true. With that
on, basic inlined stepping works, including step-over of inlined functions.  But for some as yet mysterious reason i386 debugging gets an
assert and dies immediately.  So for now its off.

llvm-svn: 163044
2012-09-01 01:02:41 +00:00
Greg Clayton 4c05410f8f Made it so changes to the prompt via "settings set prompt" get noticed by the command line.
Added the ability for OptionValueString objects to take flags. The only flag is currently for parsing escape sequences. Not the prompt string can have escape characters translate which will allow colors in the prompt.

Added functions to Args that will parse the escape sequences in a string, and also re-encode the escape sequences for display. This was looted from other parts of LLDB (the Debugger::FormatString() function).

llvm-svn: 163043
2012-09-01 00:38:36 +00:00
Greg Clayton c373ca5c74 <rdar://problem/12069589>
Fixed an issue where not all text would always be seen when running any of the functions in heap.py in Xcode. Now we put the text directly into the command result object and skip STDIO since we have issues with STDIO right now in python scripts.

Also fixed an issue with the "--stack-history" option where MallocStackLoggingNoCompact was assumed to have to be enabled... It doesn't, just MallocStackLogging.

llvm-svn: 163042
2012-09-01 00:34:35 +00:00
Jim Ingham fcb59bcfc6 Add a convenience function to get the range containing a given PC specified as load address + Target.
llvm-svn: 163038
2012-08-31 23:49:32 +00:00
Jason Molenda d204afaee8 Make the tab character in the thread frame lines optional.
llvm-svn: 163037
2012-08-31 23:27:24 +00:00
Greg Clayton 7036425c59 <rdar://problem/12202862>
Added a fix for incorrect dynamic typing. Before when asking if a C++ class could be dynamic, we would answer yes for incomplete C++ classes. This turned out to have issues where if a class was not virtual, yet had its first ivar be an instance of a virtual class, we would incorrectly say that a class was virtual and we would downcast it to be a pointer to the first ivar. We now ask the class to complete itself prior to answering the question. We need to test the effects on memory of this change prior to submission. It is the safest and best fix, but it does have a potential downside of higher memory consumption.

llvm-svn: 163014
2012-08-31 18:56:24 +00:00
Greg Clayton facebca6ba Fix indentation.
llvm-svn: 163011
2012-08-31 18:11:06 +00:00
Greg Clayton 97e44a0cc7 Added command lists that can be executed on launch, stop, crash and exit. Added code to auto import the lldb module that we can use on many stand alone modules.
llvm-svn: 162972
2012-08-31 02:55:56 +00:00
Greg Clayton c769722a16 Added an example that show correct usage of the async process event API.
llvm-svn: 162967
2012-08-31 01:11:17 +00:00
Greg Clayton 0274766be5 Added the ability to verify the LLDB API on MacOSX using a script. Usage is:
./verify_api.py --library ./LLDB.framework/LLDB --api-regex lldb --arch x86_64 /Applications/Xcode.app/Contents/PlugIns/DebuggerLLDB.ideplugin/Contents/MacOS/DebuggerLLDB

So you specify a library with the "--library" option, then you specify an API regular expression that you want to match the executables against with "--api-regex <regex>", here we specify "lldb" to catch all undefined external API functions from the binary we want to test, then we specify the architectures to check with "--arch <arch>" (this can be specified more than once), and you give one or more executables.

llvm-svn: 162941
2012-08-30 21:21:24 +00:00
Greg Clayton 0b0b512fd6 OptionValueFileSpec had an accessor to read the contents of the file and return the data. This can end up being used to get the string contents of a text file and could end up not being NULL terminated. I added accessors to get the file contents raw, or with a null terminator. Added the needed calls to make this happen in the FileSpec and File classes.
llvm-svn: 162921
2012-08-30 18:15:10 +00:00
Sean Callanan e635db4923 Fixed a potential crash in PlatformLinux if
ModuleList::GetSharedModule() returned NULL.

<rdar://problem/12182971>

llvm-svn: 162871
2012-08-29 22:34:39 +00:00
Greg Clayton 1f7460716b <rdar://problem/11757916>
Make breakpoint setting by file and line much more efficient by only looking for inlined breakpoint locations if we are setting a breakpoint in anything but a source implementation file. Implementing this complex for a many reasons. Turns out that parsing compile units lazily had some issues with respect to how we need to do things with DWARF in .o files. So the fixes in the checkin for this makes these changes:
- Add a new setting called "target.inline-breakpoint-strategy" which can be set to "never", "always", or "headers". "never" will never try and set any inlined breakpoints (fastest). "always" always looks for inlined breakpoint locations (slowest, but most accurate). "headers", which is the default setting, will only look for inlined breakpoint locations if the breakpoint is set in what are consudered to be header files, which is realy defined as "not in an implementation source file". 
- modify the breakpoint setting by file and line to check the current "target.inline-breakpoint-strategy" setting and act accordingly
- Modify compile units to be able to get their language and other info lazily. This allows us to create compile units from the debug map and not have to fill all of the details in, and then lazily discover this information as we go on debuggging. This is needed to avoid parsing all .o files when setting breakpoints in implementation only files (no inlines). Otherwise we would need to parse the .o file, the object file (mach-o in our case) and the symbol file (DWARF in the object file) just to see what the compile unit was.
- modify the "SymbolFileDWARFDebugMap" to subclass lldb_private::Module so that the virtual "GetObjectFile()" and "GetSymbolVendor()" functions can be intercepted when the .o file contenst are later lazilly needed. Prior to this fix, when we first instantiated the "SymbolFileDWARFDebugMap" class, we would also make modules, object files and symbol files for every .o file in the debug map because we needed to fix up the sections in the .o files with information that is in the executable debug map. Now we lazily do this in the DebugMapModule::GetObjectFile()

Cleaned up header includes a bit as well.

llvm-svn: 162860
2012-08-29 21:13:06 +00:00
Jason Molenda e5ad3859eb Instead of using re.split and requiring two spaces between the "regname: regvalue" pairs,
use re.findall and specify the regexp of regname: regvalue that we're interested in.
<rdar://problem/12188752> 

llvm-svn: 162806
2012-08-28 23:46:12 +00:00
Johnny Chen 1083b0dea6 rdar://problem/11374963
Fix a subtle ArchSpec::cores_match() logic issue which prevents the add-dsym command
to add a debug symbol file to one of the target's current modules.

llvm-svn: 162802
2012-08-28 22:53:40 +00:00
Johnny Chen a82412da21 Fix wrong logic with respect to warning messages.
llvm-svn: 162795
2012-08-28 21:05:21 +00:00
Johnny Chen 08abd94664 Fix a redundant computation.
llvm-svn: 162794
2012-08-28 21:01:31 +00:00
Filipe Cabecinhas c44306f7f3 Fixes by Daniel Malea.
llvm-svn: 162756
2012-08-28 13:59:38 +00:00
Filipe Cabecinhas 46f127ac9e Simplify the typecheck code.
llvm-svn: 162753
2012-08-28 13:49:02 +00:00
Enrico Granata 8fb5d46ec0 Fixing a potential control may reach end of non-void function issue
llvm-svn: 162685
2012-08-27 18:30:45 +00:00
Enrico Granata 114bb19d19 Data formatters for libc++ deque and shared/weak ptrs - a contribution by Jared Grubb
llvm-svn: 162680
2012-08-27 17:42:50 +00:00
Filipe Cabecinhas e94695cfb9 Fix include path for Linux and FreeBSD.
llvm-svn: 162679
2012-08-27 16:54:58 +00:00
Filipe Cabecinhas c5041918dd Added SBDebugger's log callbacks to Python-land
- Tweaked a parameter name in SBDebugger.h so my typemap will catch it;
- Added a SBDebugger.Create(bool, callback, baton) to the swig interface;
- Added SBDebugger.SetLoggingCallback to the swig interface;
- Added a callback utility function for log callbacks;
- Guard against Py_None on both callback utility functions;

- Added a FIXME to the SBDebugger API test;
- Added a __del__() stub for SBDebugger.

We need to be able to get both the log callback and baton from an
SBDebugger if we want to protect against memory leaks (or make the user
responsible for holding another reference to the callback).
Additionally, it's impossible to revert from a callback-backed log
mechanism to a file-backed log mechanism.

llvm-svn: 162633
2012-08-25 00:29:07 +00:00
Jim Ingham b520a104c1 Add the "expr" command to the gdb command equivalents.
llvm-svn: 162617
2012-08-24 22:56:40 +00:00
Enrico Granata 5eb99ccd3e Providing an additional Python command example
llvm-svn: 162600
2012-08-24 21:20:14 +00:00
Sean Callanan 6efc2ba7f8 Changed register ValueObjects to report their
expression path in a way that can actually be
resolved by "expr".

llvm-svn: 162574
2012-08-24 18:21:05 +00:00
Johnny Chen 6d675243b4 rdar://problem/11811338
Add 'attach <pid>|<process-name>' command to lldb, as well as 'detach' which is an alias of 'process detach'.
Add two completion test cases for "attach" and "detach".

llvm-svn: 162573
2012-08-24 18:15:45 +00:00
Greg Clayton bc38679b07 Remove printf that go left in the code.
llvm-svn: 162542
2012-08-24 06:43:15 +00:00
Greg Clayton 435ce13937 The OS plug-in can now get data from a python script that implements the protocol.
llvm-svn: 162540
2012-08-24 05:45:15 +00:00
Greg Clayton a83b6cf244 We have a partially working OS plug-in through python!
llvm-svn: 162532
2012-08-24 02:01:39 +00:00
Enrico Granata b710b8db3d Fixing an issue in the OS sample
llvm-svn: 162531
2012-08-24 01:53:47 +00:00
Greg Clayton 2443cbd7f5 Added Args::StringForEncoding(), Args::StringToGenericRegister() and centralized the parsing of the string to encoding and string to generic register.
Added code the initialize the register context in the OperatingSystemPython plug-in with the new PythonData classes, and added a test OperatingSystemPython module in lldb/examples/python/operating_system.py that we can use for testing.

llvm-svn: 162530
2012-08-24 01:42:50 +00:00
Enrico Granata 4300fab2d4 Fixing a bunch of issues with the OS plugin code
llvm-svn: 162527
2012-08-24 01:34:39 +00:00
Enrico Granata 6167ab2819 Hooking up two more calls for the PythonOSPlugin stuff. The part of code to fetch the data and convert it to C++ objects is still missing, but will come
llvm-svn: 162522
2012-08-24 00:51:29 +00:00
Enrico Granata 051c60caad Was forcing everyone on ToT to use the PythonOSPlugin.. my bad
llvm-svn: 162519
2012-08-24 00:32:51 +00:00
Enrico Granata 5790759a06 Adding bindings to the Script Interpreter for some basic Python OS plugin functionality (still WIP)
llvm-svn: 162513
2012-08-24 00:30:47 +00:00
Johnny Chen 260808c583 Fix a typo.
llvm-svn: 162510
2012-08-24 00:11:29 +00:00
Greg Clayton 281d7998b8 Switch over to using object instances for all PythonData objects.
llvm-svn: 162504
2012-08-23 23:49:47 +00:00
Jim Ingham 84c7bd7406 Clarify the doc string for register-name a bit, add flags.
llvm-svn: 162503
2012-08-23 23:47:08 +00:00
Johnny Chen 039330c292 Take '--help' as well as '-h' as hint to emit the usage output.
llvm-svn: 162502
2012-08-23 23:45:26 +00:00
Jim Ingham 931e674a58 Document the generic register names in help for register-name.
llvm-svn: 162500
2012-08-23 23:37:31 +00:00
Johnny Chen 892943f9dd Cope with the case where the user-supplied callbacks want the watchpoint itself to be disabled!
Previously we put a WatchpointSentry object within StopInfo.cpp to disable-and-then-enable the watchpoint itself
while we are performing the actions associated with the triggered watchpoint, which can cause the user-initiated
watchpoint disabling action to be negated.

Add a test case to verify that a watchpoint can be disabled during the callbacks.

llvm-svn: 162483
2012-08-23 22:28:26 +00:00
Enrico Granata 0845a1a077 A first version of a bunch of classes that wrap commonly used Python objects in a ref-counting and type-safe C++ API
llvm-svn: 162481
2012-08-23 22:02:23 +00:00
Greg Clayton b3e776008b Added a hollowed out version of an OperatingSystem plugin that will use a class in python to get thread information for threads stored in memory.
llvm-svn: 162472
2012-08-23 21:17:11 +00:00
Jim Ingham 608036ae5b gdb format should default to count of 1.
<rdar://problem/12161861>

llvm-svn: 162470
2012-08-23 21:16:25 +00:00
Johnny Chen 8ccba980e6 Make the substring un-matching more robust.
llvm-svn: 162467
2012-08-23 20:25:04 +00:00
Johnny Chen 53311c3cb1 Make a test scenario stronger, since, by default, the setting interpreter.expand-regex-aliases is false.
llvm-svn: 162465
2012-08-23 20:22:16 +00:00
Johnny Chen cfe38aab25 Fix the test suite failures as a result of r162418 check-in.
llvm-svn: 162462
2012-08-23 19:36:03 +00:00
Johnny Chen b417dcdbee rdar://problem/12022371
Make it so that "b 245" should set a breakpoint at line 245 of the current file.
Also add a simple test file.

llvm-svn: 162419
2012-08-23 00:32:22 +00:00
Greg Clayton 754a9369db <rdar://problem/12022079>
Added a new "interpreter" properties to encapsulate any properties for the command interpreter. Right now this contains only "expand-regex-aliases", so you can now enable (disabled by default) the echoing of the command that a regular expression alias expands to:

(lldb) b main
Breakpoint created: 1: name = 'main', locations = 1

Note that the expanded regular expression command wasn't shown by default. You can enable it if you want to:

(lldb) settings set interpreter.expand-regex-aliases true
(lldb) b main
breakpoint set --name 'main'
Breakpoint created: 1: name = 'main', locations = 1

Also enabled auto completion for enumeration option values (OptionValueEnumeration) and for boolean option values (OptionValueBoolean).

Fixed auto completion for settings names when nothing has been type (it should show all settings).

llvm-svn: 162418
2012-08-23 00:22:02 +00:00
Jim Ingham 4e22598b0f Fix some indenting.
llvm-svn: 162406
2012-08-22 22:52:39 +00:00
Jim Ingham 4fc6cb9c76 Rework how the API mutex is acquired when filling out an ExecutionContext from an ExecutionContextRef,
particularly in the SBThread & SBFrame interfaces.  Instead of filling the whole context & then getting
the API mutex, we now get only the target, acquire the API mutex from it, then fill out the rest of the
context.  This removes a race condition where you get a ThreadSP, then wait on the API mutex while another
command Destroy's the Thread you've just gotten.
Also fixed the ExecutionContextRef::Get*SP calls so they don't return invalid objects.
Also fixed the ExecutionContext::Has*Scope calls so they don't claim to have a scope if the object representing
that scope has been destroyed.
Also fixed a think-o in Thread::IsValid which was causing it to return the opposite of the desired value.

<rdar://problem/11995490>

llvm-svn: 162401
2012-08-22 21:34:33 +00:00
Jim Ingham 1e4f425d2f Check that the data buffer is non-null before getting its file contents.
llvm-svn: 162400
2012-08-22 21:21:16 +00:00
Jason Molenda 26d3b2a272 Change the man page install phase to only run in "desktop" and "desktop-no-xpc" targets, not for the "ios" target.
llvm-svn: 162397
2012-08-22 21:17:08 +00:00
Johnny Chen d79f06cf12 Modified .lldb-loggings now to direct the lldb log files to the same session directory which also houses the test logs.
llvm-svn: 162387
2012-08-22 20:25:33 +00:00
Johnny Chen c50ce97745 Demonstrate how to use the config file and the pre-flight functionality to route the lldb gdb-remote log messages
into individually named log destinations.  In the simple usage-lldb-loggings example, we ran two cases which resulted
in two lldb_log files.

llvm-svn: 162378
2012-08-22 18:48:13 +00:00
Greg Clayton 6920b52be6 Remove further outdated "settings" code and also implement a few missing things.
llvm-svn: 162376
2012-08-22 18:39:03 +00:00
Filipe Cabecinhas 2c0978a4ac Fixed a Linux building bug pointed out by Daniel Malea.
llvm-svn: 162373
2012-08-22 18:10:45 +00:00
Johnny Chen e3fe26c5dd Fix wrong directory pathname.
llvm-svn: 162372
2012-08-22 17:53:02 +00:00
Greg Clayton 67cc06366c Reimplemented the code that backed the "settings" in lldb. There were many issues with the previous implementation:
- no setting auto completion
- very manual and error prone way of getting/setting variables
- tons of code duplication
- useless instance names for processes, threads

Now settings can easily be defined like option values. The new settings makes use of the "OptionValue" classes so we can re-use the option value code that we use to set settings in command options. No more instances, just "does the right thing".

llvm-svn: 162366
2012-08-22 17:17:09 +00:00
Filipe Cabecinhas 9e10605d6b Added a test for the Python part of SBInputReader callbacks.
llvm-svn: 162357
2012-08-22 13:25:58 +00:00
Filipe Cabecinhas 6eb31e7391 Added a typemap and wrappers for SBInputReader callbacks
Now it's possible to use SBInputReader callbacks in Python.

We leak the callback object, unfortunately. A __del__ method can be added
to SBInputReader, but we have no way to check the callback function that
is on the reader. So we can't call Py_DECREF on it when we have our
PythonCallback function. One way to do it is to assume that reified
SBInputReaders always have a Python callback (and always call Py_DECREF).
Another one is to add methods or properties to SBInputReader (or make the
m_callback_function property public).

llvm-svn: 162356
2012-08-22 13:25:10 +00:00
Johnny Chen 82e5a26240 rdar://problem/11324515
'add-dsym' (aka 'target symbols add') should display error messages when dsym file is not found
or the dsym uuid does not match any existing modules. Add TestAddDsymCommand.py test file.

llvm-svn: 162332
2012-08-22 00:18:43 +00:00
Johnny Chen 4fe2302ae2 Fix test failures in TestWatchpointIter.py due to http://llvm.org/viewvc/llvm-project?rev=162322&view=rev.
llvm-svn: 162328
2012-08-21 23:17:04 +00:00
Johnny Chen 66535a3f88 Remove the process->DisableWatchpoint() and EnableWatchpoint() calls since the sentry object is already doing that.
llvm-svn: 162323
2012-08-21 22:15:58 +00:00
Johnny Chen 0f7ad8d98f rdar://problem/12144930
Watchpoint conditions were hitting watchpoint, smashing LLDB's stack.
Make sure watchpoint is properly disabled and subsequently enabled while performing watchpoint actions.

llvm-svn: 162322
2012-08-21 22:06:34 +00:00
Johnny Chen 393fbf6c53 Comment change.
llvm-svn: 162308
2012-08-21 20:18:21 +00:00
Jim Ingham 48cdc58f0a SBValue::GetTypeName and SBValue::GetByteSize might have to update the dynamic value - which might involve running code. So they need to take the stop lock & target locks.
<rdar://problem/12001204>

llvm-svn: 162250
2012-08-21 01:46:35 +00:00
Johnny Chen d773139bbc Fix the wrong comment in TestUUIDMismatchWarnings.py.
llvm-svn: 162239
2012-08-20 22:36:58 +00:00
Johnny Chen 9b832fe40d Fix a crash (_wrap_SBDebugger_SetInputFileHandle -> PyString_AsString) running the test suite.
Also modify the boundary condition test case SBDebugger.DispatchInput(None) to be wrapped inside a try-except clause for now.

llvm-svn: 162228
2012-08-20 21:16:02 +00:00
Greg Clayton 486290078c Added qVAttachOrWaitSupported packet support.
llvm-svn: 162207
2012-08-20 16:50:43 +00:00
Filipe Cabecinhas c30199917a A baton isn't needed to dispatch input.
I also added a typemap to make DispatchInput usable in Python.

llvm-svn: 162204
2012-08-20 16:21:04 +00:00
Filipe Cabecinhas 4c1f3a1cc5 Add FILE* typemaps for SBDebugger.GetInputFileHandle() and friends.
llvm-svn: 162203
2012-08-20 16:10:44 +00:00
Jason Molenda 8eba46c68a Some eh_frame unwind instructions will define a return address register;
when you want to find the caller's saved pc, you look up the return address
register and use that.  On arm, for instance, this would be the contents of
the link register (lr).

If the eh_frame CIE defines an RA, record that fact in the UnwindPlan.

When we're finding a saved register, if it's the pc, lok for the location
of the return address register instead.

<rdar://problem/12062310> 

llvm-svn: 162167
2012-08-18 06:53:34 +00:00
Johnny Chen 8115c6d45d Fix missing braces from the python-GIL merge.
llvm-svn: 162162
2012-08-18 04:24:00 +00:00
Johnny Chen 2c90e999aa Merge python-GIL bracnh (by filcab) back into trunk!
llvm-svn: 162161
2012-08-18 04:14:54 +00:00
Johnny Chen 319e927ae1 Fix a race condition where multiple PythonInputReaderManager instances could, during destruction,
tread on the m_embedded_thread_input_reader_sp singleton maintained by the script interpreter.
Furthermore, use two additional slots under the script interpreter to store the PseudoTerminal and
the InputReaderSP pertaining to the embedded python interpreter -- resulted from the
ScriptInterpreterPython::ExecuteInterpreterLoop() call -- to facilitate separation from what is being
used by the PythonInputReaderManager instances.

llvm-svn: 162147
2012-08-17 23:44:35 +00:00
Sean Callanan 433c8a1f44 Committed a simple dtrace script that tracks
process termination, which can be useful to track
debugserver's delivery of signals.

llvm-svn: 162104
2012-08-17 16:30:13 +00:00
Sean Callanan adc43c998c Fixed some small formatting issues in the help for
"command regex."  It's now more readable and
grammatically correct.

<rdar://problem/12115962>

llvm-svn: 162047
2012-08-16 21:46:58 +00:00
Sean Callanan aa01b83078 Fixed a crash when incomplete expression variables
are materialized.

<rdar://problem/12105013>

llvm-svn: 162046
2012-08-16 21:34:44 +00:00
Johnny Chen a60c5ad819 Catch timestamps for the beginning and end of the test suite run.
llvm-svn: 162040
2012-08-16 19:15:21 +00:00
Johnny Chen a7e1d39309 Update build instructions. Patch from "Kopec, Matt" <matt.kopec@intel.com>!
llvm-svn: 162001
2012-08-16 00:08:21 +00:00
Johnny Chen eb46f78b08 rdar://problem/12096295
Add an lldb command line option to specify a core file: --core/-c.
For consistency, change the "target create" command to also use --core.

llvm-svn: 161993
2012-08-15 22:10:42 +00:00
Sean Callanan be3c5dab76 Fixed a typo.
<rdar://problem/12090979>

llvm-svn: 161910
2012-08-15 00:26:32 +00:00
Johnny Chen 6cf6f89005 A little bit of refactoring.
llvm-svn: 161903
2012-08-14 23:09:48 +00:00
Johnny Chen 25c0eb4a38 When trying to take snapshots of a watched variable, if the frame is unable to evaluate the variable expression,
do not take the sanpshot and forget about the stop info.  It is possible that the variable expression has gone
out of scope, we'll revise the hit count due to the false alarms.

llvm-svn: 161892
2012-08-14 20:56:37 +00:00
Enrico Granata 273d177bdf <rdar://problem/11589605> Making a
'type category enable *' command
to match 'type category disable *'

llvm-svn: 161882
2012-08-14 18:18:07 +00:00
Johnny Chen 88fc73b8f7 Simplify the "Watchpoint ... hit" printout, make it more terse.
Change the test case, too. 

llvm-svn: 161806
2012-08-13 23:27:50 +00:00
Jason Molenda 4d04d477d9 When emulating instructions that read from memory,
return 0x0 as the read value instead of uninitialized
stack data so we get consistent behavior from the
emulator.
<rdar://problem/12058770>

llvm-svn: 161795
2012-08-13 21:53:35 +00:00
Johnny Chen f97ecd70b2 Comment changes.
llvm-svn: 161787
2012-08-13 21:19:11 +00:00
Johnny Chen 209bd65ea4 rdar://problem/12007576
Record the snapshot of our watched value when the watchpoint is set or hit.
And report the old/new values when watchpoint is triggered.  Add some test scenarios.

llvm-svn: 161785
2012-08-13 21:09:54 +00:00
Greg Clayton 45b673dad5 <rdar://problem/12087275>
Make the crashlog parser able to deal with spaces in the process name.

llvm-svn: 161772
2012-08-13 18:48:03 +00:00
Greg Clayton 774ebdfcd1 Added a new "objc_refs" command that will track down all allocations on the heap that have the "isa" for the objective C class at offset zero. This will need to be improved to deal with KVO classes, but it is a start. It also disallows looking up a pointer value of zero since that would return way too many matches.
llvm-svn: 161724
2012-08-11 02:26:26 +00:00
Jim Ingham 0e41084ad1 Add an option to "process continue" to ignore the next <N> crossings of the breakpoint under
the currently selected thread.

<rdar://problem/10458225>

llvm-svn: 161723
2012-08-11 01:27:55 +00:00
Greg Clayton 7f4c7430f7 <rdar://problem/11791234>
Remember to copy the address byte size and the byte order when copying data into a DWARF location object, or things will go wrong.

llvm-svn: 161721
2012-08-11 00:49:14 +00:00
Greg Clayton 1fdbee5a6b Revert changes where we copied the expression locations back to using the reference into the debug info until test suite failures are resolved.
llvm-svn: 161720
2012-08-11 00:39:03 +00:00
Jim Ingham f94e179172 Add explicit casts to bool in "shared pointer is valid" constructs that return bool.
llvm-svn: 161719
2012-08-11 00:35:26 +00:00
Jim Ingham d6551dc0bf Change the minimum deployment target to 10.7 since clang requires 10.7 to use the new libc++.
llvm-svn: 161718
2012-08-11 00:33:08 +00:00
Greg Clayton 8179bcac55 <rdar://problem/11791234>
Fixed an issue that could cause references the shared data for an object file to stay around longer than intended and could cause memory bloat when debugging multiple times.

llvm-svn: 161716
2012-08-10 23:33:27 +00:00
Jim Ingham e9ce62b663 Use the file completer for "process launch" arguments.
<rdar://problem/11274012>

llvm-svn: 161704
2012-08-10 21:48:41 +00:00
Jason Molenda 4210713491 Remove a little unuseful output from the UnwindPlan::Row::Dump and UnwindPlan::Dump methods.
llvm-svn: 161696
2012-08-10 20:52:59 +00:00
Johnny Chen 01c0d4ec1f Add command completion test case for 'watchpoint command'.
llvm-svn: 161684
2012-08-10 19:05:48 +00:00
Sean Callanan d2a5a90148 Fixed a potential crash where we attempt to read
an invalid register.

<rdar://problem/12065366>

llvm-svn: 161679
2012-08-10 18:35:24 +00:00
Johnny Chen 1320641067 rdar://problem/11457143
Forgot to check in this file.  Oops!

llvm-svn: 161639
2012-08-09 23:10:57 +00:00
Johnny Chen e9a5627e7a rdar://problem/11457143 [ER] need "watchpoint command ..."
Add 'watchpoint command add/delete/list' to lldb, plus two .py test files.

llvm-svn: 161638
2012-08-09 23:09:42 +00:00
Johnny Chen 4ac1d9e160 Added back member initialization for m_batch_command_mode, which was most likely removed accidentally a while back.
The consequence occurred recently probably due to our swicth to build with c++11.
This fixed 3 test failures.

llvm-svn: 161625
2012-08-09 22:06:10 +00:00
Enrico Granata 17b1174911 <rdar://problem/11578397> Adding a new --summary-string option for the frame variable command which allows the user to provide a summary string with which he wants to display the variables without having to make a named summary first
llvm-svn: 161623
2012-08-09 22:02:51 +00:00
Jim Ingham 462227b08b Turn on function args by default in thread & frame formats.
<rdar://problem/11703715>

llvm-svn: 161611
2012-08-09 20:29:34 +00:00
Enrico Granata 7ec18e3d10 <rdar://problem/10449092> Adding a new uppercase hex format specifier. This commit also changes the short names for formats so that uppercase hex can be 'X', which was previously assigned to hex float. hex float now has no short name.
llvm-svn: 161606
2012-08-09 19:33:34 +00:00
Sean Callanan bcf897fa89 LLDB no longer prints <no result> by default if
the expression returns nothing.  There is now a
setting, "notify-void."  When the user enables
that setting, lldb prints (void) if an expression's
result is void.  Otherwise, lldb is silent.

<rdar://problem/11225150>

llvm-svn: 161600
2012-08-09 18:18:47 +00:00
Enrico Granata 2b2631c915 <rdar://problem/11505459> Stripping off the object's type from the output of the 'po' command
llvm-svn: 161592
2012-08-09 16:51:25 +00:00
Sean Callanan 1727742634 On Mac OS X, lldb will now build c++11 and use
libc++.  We also no longer use the GNU extensions
to C++ and C (we didn't use them anyway).

This also means that the LLVM we use must be
built with the new libc++.

I will commit llvm.zip next.

<rdar://problem/11930775>

llvm-svn: 161562
2012-08-09 01:32:13 +00:00
Sean Callanan ecb20887d8 Made lldb.swig include <string>, which it requires.
llvm-svn: 161560
2012-08-09 00:53:54 +00:00
Sean Callanan 9a028519e8 Removed explicit NULL checks for shared pointers
and instead made us use implicit casts to bool.
This generated a warning in C++11.

<rdar://problem/11930775>

llvm-svn: 161559
2012-08-09 00:50:26 +00:00
Sean Callanan 33baca29e5 When compiling with C++11, switch from
hash_multimap to unordered_multimap.

<rdar://problem/11930775>

llvm-svn: 161558
2012-08-09 00:46:55 +00:00
Sean Callanan 91e776d132 Now that the testcase is fixed, it is no longer
an expected failure.

llvm-svn: 161556
2012-08-09 00:40:16 +00:00
Enrico Granata 6656e6c2b6 <rdar://problem/12061386> Fixing data-formatter-cpp test case - previous version had an unfortunate dependency on the value of uninitialized memory
llvm-svn: 161555
2012-08-09 00:35:41 +00:00
Sean Callanan 5fbbc5bfe8 The C++ data formatter tests are flaky. Marking
them as expected failures until they are fixed.

llvm-svn: 161547
2012-08-09 00:01:48 +00:00
Greg Clayton fcde4fad2b Fixed the delay that was happening when quitting lldb from the command line. We weren't initializing the command pipes when constructing a ConnectionFileDescriptor with a file descriptor.
llvm-svn: 161533
2012-08-08 22:27:52 +00:00
Sean Callanan bf154daee6 Added a 'void' format so that the user can manually
suppress all non-error output from the "expression"
command.

<rdar://problem/11225150>

llvm-svn: 161502
2012-08-08 17:35:10 +00:00
Filipe Cabecinhas f2bac60f74 Indentation fix for dotest.py.
llvm-svn: 161493
2012-08-08 15:23:24 +00:00
Filipe Cabecinhas d6cab1f6af Make dotest.py runnable from a directory other than lldb/test
llvm-svn: 161492
2012-08-08 15:05:04 +00:00
Enrico Granata 40d557107f <rdar://problem/11975483> Removing user-visible references to 'dict' as a parameter name for Python summary-generating functions since it is a Python keyword.
llvm-svn: 161467
2012-08-08 02:06:30 +00:00
Sean Callanan 316d5e4e9a Made "call" another alias for "expression --",
for people used to the GDB command.

<rdar://problem/12052072>

llvm-svn: 161466
2012-08-08 01:30:34 +00:00
Greg Clayton e795f1bf2f Added the ability to set the architecture from two numbers that represent the mach-o CPU type and subtype in the format "%u-%u" or "%u.%u". This can of course be followed by vendor and OS.
llvm-svn: 161465
2012-08-08 01:19:34 +00:00
Enrico Granata e58a507da1 <rdar://problem/11576169> Better documentation string for the -Y option to frame variable
llvm-svn: 161464
2012-08-08 01:12:11 +00:00
Filipe Cabecinhas 59fba12d28 Added fix from Pawel Worach.
llvm-svn: 161420
2012-08-07 16:33:49 +00:00
Filipe Cabecinhas 1a62bf4d55 Start working on the test suite in FreeBSD
llvm-svn: 161419
2012-08-07 15:40:30 +00:00
Enrico Granata 9c2efe39c0 Fixing an issue where ValueObject::GetPointeeData() would not work correctly for file addresses when fetching items other than the 0-th
llvm-svn: 161384
2012-08-07 01:49:34 +00:00
Sean Callanan cd4ae1ab94 Changed the Opcode::GetData() API so that it didn't
require an AddressClass, which is useless at this
point since it already knows the distinction between
32-bit Thumb opcodes and 32-bit ARM opcodes.

llvm-svn: 161382
2012-08-07 01:44:58 +00:00
Greg Clayton 79101b5cb0 Fixed an error in the thumb opcode encoding. We need the 32 bit thumb instructions to be encoded as a 32 bit value for the EmulateARM code.
llvm-svn: 161381
2012-08-07 01:29:29 +00:00
Sean Callanan d5e37e4d2b Updating Xcode project version numbers for lldb-165 and debugserver-192
llvm-svn: 161374
2012-08-07 00:32:29 +00:00
Sean Callanan 5c97c2f7b0 Improved raw disassembly output for Thumb.
llvm-svn: 161360
2012-08-06 23:42:52 +00:00
Greg Clayton e998267282 <rdar://problem/12029894>
Use the built in demangler for Apple builds for now which has needed demangling fixes, and make the cxa_demangle.cpp use rtti in the Xcode project settings as it requires it be enabled.

llvm-svn: 161323
2012-08-06 15:55:38 +00:00
Johnny Chen 0efe2743f8 Pull in cxa_demangle.cpp/.h from llvm's libcxxabi project. Change the namespace to lldb_cxxabiv1 for the time being.
Mangled.cpp is not wired in to call it yet.

llvm-svn: 161293
2012-08-04 01:36:57 +00:00
Enrico Granata e2e091bd59 <rdar://problem/12027563> Making sure that some class of stop-hook commands that involve po'ing objects do not cause an endless recursion
llvm-svn: 161271
2012-08-03 22:24:48 +00:00
Sean Callanan c40b0f38b3 Updating Xcode project version numbers for lldb-164 and debugserver-191
llvm-svn: 161209
2012-08-02 20:40:53 +00:00
Enrico Granata df31a8aed7 <rdar://problem/11846023> Fixing a bug where malformed DWARF could lead to an endless recursion with synthetic children
llvm-svn: 161185
2012-08-02 17:34:05 +00:00
Johnny Chen 552d6719f2 Silence the "Command ... failed!" message when not running in trace mode.
You run with trace mode by passing '-t' to the test driver.

llvm-svn: 161130
2012-08-01 19:56:04 +00:00
Sean Callanan 7e6d4e5a11 Instructions generated by a disassembler can now
keep a shared pointer to their disassembler.  This
is important for the LLVM-C disassembler because
it needs to lock its parent in order to disassemble
itself.

This means that every interface that returned a
Disassembler* needs to return a DisassemblerSP, so
that the instructions and any external owners share
the same reference count on the object.  I changed
all clients to use this shared pointer, which also
plugged a few leaks.

<rdar://problem/12002822>

llvm-svn: 161123
2012-08-01 18:50:59 +00:00
Filipe Cabecinhas bbb648ef80 Make the objc-runtime work with Python 2.6
llvm-svn: 161111
2012-08-01 14:38:37 +00:00
Greg Clayton 1811b4faad <rdar://problem/11275622>
Added new API to lldb::SBTypeMember for bitfields:

    bool SBTypeMember::IsBitfield();
    uint32_t SBTypeMember::GetBitfieldSizeInBits();

Also added new properties for easy access. Now SBTypeMember objects in python have a "fields" property for all type fields, "bases" for all direct bases, "vbases" for all virtual base classes and "members" for a combo of all three organized by bit offset. They all return a python list() of SBTypeMember objects. Usage:
(lldb) script
>>> t = lldb.target.FindFirstType("my_type")
>>> for field in t.fields:
...     print field
>>> for vbase in t.vbases:
...     print vbase
>>> for base in t.bases:
...     print base
>>> for member in t.members:
...     print member

Also added new "is_bitfield" property to the SBTypeMember objects that will return the result of SBTypeMember::IsBitfield(), and "bitfield_bit_size" which will return the result of SBTypeMember::GetBitfieldSizeInBits();

I also fixed "SBTypeMember::GetOffsetInBytes()" to return the correct byte offset.

llvm-svn: 161091
2012-07-31 23:39:10 +00:00
Jason Molenda fa67e87978 When building up the UnwindPlan based on eh_frame unwind
instructions, be sure to allocate new UnwindPlan::Row's each
time we push a row on to the UnwindPlan so we don't mutate 
it any further.

(fallout from changing the UnwindPlan from having a vector
of Row's to having a vector of RowSP shared pointers.)

<rdar://problem/11997385> 

llvm-svn: 161089
2012-07-31 22:42:30 +00:00
Sean Callanan 708709c015 Fixed a problem where stepping out would turn into
a continue if the unwinder didn't unwind correctly.

<rdar://problem/11989668>

llvm-svn: 161086
2012-07-31 22:19:25 +00:00