Commit Graph

3610 Commits

Author SHA1 Message Date
Greg Clayton 2506a7a959 Added the ability to see if a DIE is contained in a namespace.
llvm-svn: 141832
2011-10-12 23:34:26 +00:00
Johnny Chen c6d3b6e7a6 Minor fix.
llvm-svn: 141826
2011-10-12 22:25:13 +00:00
Johnny Chen 4ffde88b42 Add pointer to the examples/customization directory for examples of lldb customizations.
llvm-svn: 141823
2011-10-12 22:22:09 +00:00
Sean Callanan e3aef1d063 Extended the lifetime of Clang parser objects to the
lifetime of ClangExpressionDeclMap.  This allows
ClangExpressionVariables found during parsing to be
queried for their containing namespaces during
expression execution.

Other clients (like ClangFunction) explicitly delete
this state, so they should not result in any memory
leaks.

llvm-svn: 141821
2011-10-12 22:20:02 +00:00
Johnny Chen 724e62bb4a Prepend '~' to the sys.path so that ~/utils.py takes precedence.
llvm-svn: 141817
2011-10-12 21:51:58 +00:00
Johnny Chen 7f01ac39b9 Patch by Enrico to provide an example of 'import' commnad for importing .py/.pyc files.
llvm-svn: 141810
2011-10-12 20:47:04 +00:00
Sean Callanan ca4e0fd7e6 Refactoring in preparation for having multiple
calls to the FindExternalVisibleDecls function.

FindExternalVisibleDecls was recording whether
it had found generic function symbols in variables
that were local to the function.  Now, however,
multiple calls occur in response to one request
from Clang, since we may be searching across
namespaces.  To support that, I moved the local
variables into a bitfield in NameSearchContext.

llvm-svn: 141808
2011-10-12 20:29:25 +00:00
Johnny Chen de2ff3b64e Add reference to ToT/examples/customization for more customization examples.
llvm-svn: 141800
2011-10-12 19:20:04 +00:00
Johnny Chen de6ade01d0 Add an examples/customization directory and add a subdirectory pwd-cd-and-system
which contains the lldb init file and a utils.py Python module in order to add
the 'pwd', 'cd', and 'system' lldb commands.

llvm-svn: 141799
2011-10-12 19:16:06 +00:00
Sean Callanan 1a2c5386cd Made the expression parser's type search call the
proper namespace-aware APIs.

llvm-svn: 141797
2011-10-12 18:44:30 +00:00
Sean Callanan 4c3977c278 Added support to ClagnExpressionDeclMap for finding
data symbols in namespaces.

llvm-svn: 141792
2011-10-12 18:00:53 +00:00
Johnny Chen 04a101d475 Add cleanups for 'command script add' to TestCommandPython.py.
llvm-svn: 141790
2011-10-12 17:50:41 +00:00
Sean Callanan 25ea08ef8c Changed FindExternalVisibleDecls() to use the module
level FindFunctions() where appropriate and not use
SymbolContext::FindFunctionsByName().

llvm-svn: 141789
2011-10-12 17:38:09 +00:00
Sean Callanan 03267a7068 Oops, committed my local build settings. Fixed that.
llvm-svn: 141784
2011-10-12 17:08:22 +00:00
Sean Callanan 1fd3f4f14c Made FindGlobalVariable() optionally search a specific
module and namespace.  Also made it use FindGlobalVariables()
instead of the more heavyweight 
GetVariablesForVariableExpressionPath().

llvm-svn: 141783
2011-10-12 16:59:31 +00:00
Sean Callanan b6d70ebc0a Added ClangNamespaceDecl * parameters to several
core Module functions that the expression parser
will soon be using.

llvm-svn: 141766
2011-10-12 02:08:07 +00:00
Sean Callanan 8897224363 Cleanups in preparation for making FindExternalVisibleDecls
look in individual modules rather than globally.

Also some whitespace fixes.

llvm-svn: 141765
2011-10-12 01:39:28 +00:00
Johnny Chen c79eec0c18 Add description of a more capable 'cd' command using 'command script add'.
llvm-svn: 141764
2011-10-12 01:28:23 +00:00
Greg Clayton d4e2552c73 Fix preprocessor warnings for no newline at the end of the source files.
llvm-svn: 141755
2011-10-12 00:53:29 +00:00
Sean Callanan 503aa525ea Implemented a namespace map that allows searching
of namespaces (only in the modules where they've
been found) for entities inside those namespaces.

For each NamespaceDecl that has been imported into
the parser, we maintain a map containing
[ModuleSP, ClangNamespaceDecl] pairs in the ASTImporter.
This map has one entry for each module in which the
namespace has been found.  When we later scan for an
entity inside a namespace, we search only the modules
in which that namespace was found.

Also made a small whitespace fix in 
ClangExpressionParser.cpp.

llvm-svn: 141748
2011-10-12 00:12:34 +00:00
Johnny Chen 8a7f3f5bac Add a more generic stepping benchmark, which uses the '-k' option of the test driver
to be able to specify the runhook(s) to bring the debug session to a certain state
before running the benchmarking logic.  An example,

./dotest.py -v -t +b -k 'process attach -n Mail' -k 'thread backtrace all' -p TestRunHooksThenSteppings.py

spawns lldb, attaches to the 'Mail' application, does a backtrace for all threads, and then
runs the benchmark to step the inferior multiple times.

llvm-svn: 141740
2011-10-11 23:22:02 +00:00
Johnny Chen 6dcbeaeecb Patch by Dawn to add the logging capabilities to ProcessLinux.cpp.
llvm-svn: 141712
2011-10-11 21:21:57 +00:00
Johnny Chen 54cb8f83d9 Fix a typo in ProcessKDP::DidAttach().
Patch by Dawn.

llvm-svn: 141711
2011-10-11 21:17:10 +00:00
Greg Clayton 199a0bb529 Added a missing file from a previous checkin.
llvm-svn: 141707
2011-10-11 20:23:29 +00:00
Johnny Chen ef9e2ef2a5 Add documentation on providing the 'cd' and 'pwd' commands to lldb with the help of the embedded Python interpreter and
the 'command regex' command.

llvm-svn: 141698
2011-10-11 19:39:48 +00:00
Greg Clayton f324a89c25 Patch from Dragos Tatulea to re-enable the PECOFF object file parser for all
builds on all systems.

llvm-svn: 141677
2011-10-11 16:42:21 +00:00
Jim Ingham 32fc9601a1 Added some simple testcases for figuring out breakpoints by name in
classes & namespaces.

llvm-svn: 141629
2011-10-11 01:43:50 +00:00
Jim Ingham d3238352c3 Remove a debugging printf...
llvm-svn: 141627
2011-10-11 01:30:59 +00:00
Johnny Chen 999f7ab9bd Add '-k' option to the test driver to be able to specify a runhook, which is an lldb command
for the debugger to execute for certain kind of tests (for example, a benchmark).
A list of runhooks can be used to steer the debugger into the desired state before more
actions can be performed.

llvm-svn: 141626
2011-10-11 01:30:27 +00:00
Jim Ingham 2dd7f7fb71 Add a SBTarget::BreakpointCreateByName API that allows you to specify the name
type mask.

llvm-svn: 141625
2011-10-11 01:18:55 +00:00
Jim Ingham ea8005a786 Fix a couple of places in FindFunctions where I was using the passed in name_type_mask
rather than the computed effective_name_type_mask.

llvm-svn: 141624
2011-10-11 01:18:11 +00:00
Johnny Chen 541b98517e Remove test logic to check for clang and skip the rest due to insufficient debug info.
Recent changes in lldb inlining robustness seem to have fixed it.

llvm-svn: 141595
2011-10-10 23:26:54 +00:00
Johnny Chen 48d042b659 Patch from dawn@burble.org to build on linux!
llvm-svn: 141593
2011-10-10 23:11:50 +00:00
Johnny Chen a10e6c1052 Add '-e' and '-x' options to the test driver to be able to specify an executable (full path)
and the breakpoint specification for the benchmark purpose.  This is used by TestSteppingSpeed.py
to benchmark the lldb stepping speed.  Without '-e' and 'x' specified, the test defaults to
run the built lldb against itself and stopped on Driver::MainLoop, then stepping for 50 times.

rdar://problem/7511193

llvm-svn: 141584
2011-10-10 22:03:44 +00:00
Johnny Chen a319b84f6a Modify sidebar.incl and remove files to reflect r141554 change.
llvm-svn: 141556
2011-10-10 18:06:09 +00:00
Johnny Chen 7571ba7015 Remove utils/emacs directory from lldb.
llvm-svn: 141554
2011-10-10 17:58:30 +00:00
Greg Clayton 995e10ac9b Patch from Dragos Tatulea regarding typedefs with the new RangeArray template class.
llvm-svn: 141546
2011-10-10 16:33:44 +00:00
Greg Clayton 2e9f7a0f01 Remove unneeded exports.
llvm-svn: 141504
2011-10-08 22:26:32 +00:00
Greg Clayton 2215230040 Changed RangeMap over to use llvm::SmallVector and updated the RangeArray and the RangeDataArray to have an extra "unsigned N" template parameter. Updated the lldb_private::Block to use a RangeArray with a uint32_t for both the function base offset and block range size, and then a 1 for the small vector size since most lexical blocks in DWARF only have 1 range. Updates the DWARFDebugRanges RangeArray to use an unsigned of 2 since most blocks that have more than one range usually have 2. Also updated a DWARFDebugAranges to default their RangeArray to use a SmallVector with unsigned size of 1 since this will take care of the .o files when doing DWARF in .o files and since there really isn't any good size we can guess with.
llvm-svn: 141480
2011-10-08 06:59:54 +00:00
Greg Clayton 892d898605 Added some debug code that can verify that all RangeMap.h maps are sorted when needed since RangeArray and RangeDataArray instantiations depend on it. I ran the test suite with ASSERT_RANGEMAP_ARE_SORTED defined and I got no assertions, so I disabled it prior to checkin.
llvm-svn: 141478
2011-10-08 03:59:55 +00:00
Greg Clayton 2e4b5c0d9d Removed unneeded content.
llvm-svn: 141477
2011-10-08 03:53:14 +00:00
Greg Clayton e7b6681863 Started on the export table for the MappedHash.
llvm-svn: 141469
2011-10-08 01:13:27 +00:00
Jim Ingham eb6ba39033 Fix the last testsuite regression from the apple-names stuff.
llvm-svn: 141468
2011-10-08 01:11:42 +00:00
Greg Clayton ea3e7d5ccf Added more functionality to Range template classes in RangeMap.h and converted remaining DWARF areas that were using ranges over to this class. Also converted lldb_private::Block to use it.
llvm-svn: 141460
2011-10-08 00:49:15 +00:00
Sean Callanan 2590b9ac6f Fixed a memory leak of ASTResultSynthesizers,
by attaching them to the ClangExpressionParser.

llvm-svn: 141452
2011-10-08 00:21:35 +00:00
Johnny Chen a4e8baeb33 Add fuzz call for SBBreakpointLocation.GetAddress().
llvm-svn: 141443
2011-10-07 23:54:04 +00:00
Sean Callanan 880e680fa3 Updated LLVM/Clang to pull in the latest ARM disassembler.
This involved minor changes to the way we report Objective-C
methods, as well as cosmetic changes and added parameters
for a variety of Clang APIs.

llvm-svn: 141437
2011-10-07 23:18:13 +00:00
Jim Ingham e71c18dff0 Remove some commented out code.
llvm-svn: 141431
2011-10-07 22:28:49 +00:00
Jim Ingham adedc1f48b Clean up some documentation.
llvm-svn: 141430
2011-10-07 22:28:29 +00:00
Jim Ingham 1b040c157a Mention SBBreakpointLocation::GetAddress in the Python .i file.
llvm-svn: 141429
2011-10-07 22:27:25 +00:00
Jim Ingham 4cda6e058b Move the responsibility for translating the various eFunctionNameType lookups to the
SymbolFIle (it was done mostly in the BreakpointResolverName resolver before.)  Then
tailor our searches to the way the indexed maps are laid out.  This removes a bunch 
of test case failures using indexed dSYM's.

llvm-svn: 141428
2011-10-07 22:23:45 +00:00
Jim Ingham 881ec8534e When a function calculates its module, make sure it returns the "real" module, not the linked .o file.
llvm-svn: 141424
2011-10-07 22:20:35 +00:00
Jim Ingham 4a6ae0f01a Fix the option lists that "--file" belongs to so the help won't come out whonky.
llvm-svn: 141423
2011-10-07 22:17:16 +00:00
Jim Ingham f3277750df Don't look up main to find the default source file till somebody actually asks for it.
llvm-svn: 141422
2011-10-07 22:16:04 +00:00
Greg Clayton c28416d777 Removed code that was left in during testing and debugging of an issue.
llvm-svn: 141387
2011-10-07 19:26:25 +00:00
Johnny Chen ebe51726b8 If we spawn an lldb process for test (via pexpect), do not load the init file unless told otherwise.
Set up self.lldbOption to be "--no-lldbibit" unless env variable NO_LLDBIBIT is defined and equals "NO".
Also add "-nx" to gdb spawned.

llvm-svn: 141384
2011-10-07 19:21:09 +00:00
Greg Clayton cf0e4f0daf Re-organized the contents of RangeMap.h to be more concise and also allow for a Range, RangeArray, RangeData (range + data), or a RangeDataArray. We have many range implementations in LLDB and I will be converting over to using the classes in RangeMap.h so we can have one set of code that does ranges and searching of ranges.
Fixed up DWARFDebugAranges to use the new range classes.

Fixed the enumeration parsing to take a lldb_private::Error to avoid a lot of duplicated code. Now when an invalid enumeration is supplied, an error will be returned and that error will contain a list of the valid enumeration values.

llvm-svn: 141382
2011-10-07 18:58:12 +00:00
Jim Ingham de4b919d27 Turn the EvaluateExpression (..., True) tests back on.
llvm-svn: 141375
2011-10-07 18:02:54 +00:00
Greg Clayton c26e445403 Since we use address ranges a lot I added a templatized class that allows us to easily control the base address type, the size type, and the data that is stored with each range. It is designed to be populated by appending all needed items, then sorting the resulting list, and optionally minimizing the list when done. I adopted this new list in the DWARFDebugAranges for even further memory savings.
llvm-svn: 141352
2011-10-07 03:58:56 +00:00
Greg Clayton 5f4c61e2d7 <rdar://problem/10226227>
Fixed the root cause of what was causing an assertion to fire during single stepping. We had an issue with the inlined stack frames where when we had inlined frames that were not in the first concrete frame where we passed the wrong PC down. We needed to decrement the PC by one for these frames to make
sure we are using the same address that did the symbol context lookup.

llvm-svn: 141349
2011-10-07 01:52:19 +00:00
Greg Clayton f8843bf5d1 Added better logging for the case where we don't find a PC in a block.
llvm-svn: 141348
2011-10-07 01:49:45 +00:00
Johnny Chen c12ec2f600 Add a simple scenario of emacs and lldb interaction.
llvm-svn: 141347
2011-10-07 01:06:37 +00:00
Johnny Chen 1c6c43f1dc Allow the crash log file path to contain an initial tilde component.
llvm-svn: 141340
2011-10-06 23:36:00 +00:00
Greg Clayton 70a11261ac <rdar://problem/10226227>
Fixed an assertion that was causing a crash. The bug describes a case where we have an inlined block that doesn't contain the frame PC that was used to lookup the symbol context in the first place. This really shouldn't happen, so
now we log if we run into this and don't assert.

llvm-svn: 141338
2011-10-06 23:32:32 +00:00
Johnny Chen e7e4ac4d8d Simplify code to print symbols and sections within a module using the built-in iterators.
llvm-svn: 141326
2011-10-06 22:48:56 +00:00
Johnny Chen 98a49d9b77 Simplify the verbose output of WatchpointLocation::DumpWithLevel().
llvm-svn: 141307
2011-10-06 20:27:05 +00:00
Jason Molenda c25e959dee ProcessGDBRemote::BuildDynamicRegisterInfo() - even if we don't have a Target architecture
set up yet, if we're talking to an Apple arm device set the register set based on the
arm device's attributes; this is a safe assumption to make in this particular environment.

llvm-svn: 141265
2011-10-06 01:45:46 +00:00
Johnny Chen 4f09a0f855 Add a test sequence for 'target variable' command when no arguments are given.
llvm-svn: 141264
2011-10-06 01:00:53 +00:00
Greg Clayton 21f2a4919b Added a new logging channel to the DWARF called "lookups":
(lldb) log enable dwarf lookups

This allows us to see when lookups are being done on functions, addresses,
and types by both name and regular expresssion.

llvm-svn: 141259
2011-10-06 00:09:08 +00:00
Johnny Chen fad6cde32a Add a page describing the emacs integration elisp code based on the Grand Unified Debugger.
An lldb-enhanced gud.el is located under utils/emacs.

llvm-svn: 141241
2011-10-05 22:53:08 +00:00
Greg Clayton 5cf58b9ba0 Stop spurious "DW_AT_specification(0x%8.8x) has no decl" warnings that were due to not parsing the function types when the function blocks are made and parsed.
Cached the Function object's m_type value after it has been calculated.

llvm-svn: 141225
2011-10-05 22:22:08 +00:00
Greg Clayton 8dd5c17d69 Stop empty C strings in summaries from showing "<data not available>" when a
"const char *" is NULL. Also cleaned up the display of strings when you have
an array of chars that are all NULL. Previously we were showing: ""...
We now show: ""

llvm-svn: 141223
2011-10-05 22:19:51 +00:00
Greg Clayton 9a5a934051 "target variable" will now display the current frame's compile unit globals
and statics when no arguments are given. 

llvm-svn: 141222
2011-10-05 22:17:32 +00:00
Johnny Chen 6cc60e8668 Add capability to set ignore count for watchpoint on the command line:
watchpoint ignore -i <count> [<watchpt-id | watchpt-id-list>]

Add tests of watchpoint ignore_count for command line as well as API.

llvm-svn: 141217
2011-10-05 21:35:46 +00:00
Greg Clayton 252d0ede74 Fixed a crasher where the m_frames collection was being accessed without
using the mutex.

llvm-svn: 141160
2011-10-05 03:14:31 +00:00
Johnny Chen 80fdd7c0b7 Fix a problem where the stop-hook command 'frame variable g_val' produces nothing
when newly created threads were subsequently stopped due to breakpoint hit.
The stop-hook mechanism delegates to CommandInterpreter::HandleCommands() to
execuet the commands.  Make sure the execution context is switched only once
at the beginning of HandleCommands() only and don't update the context while looping
on each individual command to be executed.

rdar://problem/10228156

llvm-svn: 141144
2011-10-05 00:42:59 +00:00
Greg Clayton c396749670 Added missing file.
llvm-svn: 141130
2011-10-04 22:56:35 +00:00
Greg Clayton 7f99513e8f Enable all the new accelerator tables if they are present and don't manually
index the DWARF. Also fixed an issue with memory accelerator tables with a
size of 1 where we would loop infinitely.

Added support for parsing the new .apple_namespaces section which gives us a
memory hash table for looking up namespaces.

llvm-svn: 141128
2011-10-04 22:41:51 +00:00
Johnny Chen ced9068603 Add more docstring to the Python interface file for SBSection.
llvm-svn: 141044
2011-10-03 23:06:33 +00:00
Johnny Chen 524e4ccb49 Add fuzz call for sub-section iteration for SBSection.
llvm-svn: 141041
2011-10-03 22:43:06 +00:00
Johnny Chen 3dc26e839c Add SBSection API to the fuzz testing.
llvm-svn: 141039
2011-10-03 22:30:56 +00:00
Johnny Chen 8c3dc3d0fd Add fuzz call for watchpoint location iterator, too.
llvm-svn: 141036
2011-10-03 22:08:35 +00:00
Johnny Chen b92574ffb9 Add fuzz calls for various iterators, too.
llvm-svn: 141035
2011-10-03 22:02:59 +00:00
Johnny Chen fdce6dc19d Add comment markers for in_range(symbol, section).
llvm-svn: 141033
2011-10-03 21:48:40 +00:00
Johnny Chen 44d6d2c526 Fix regression of test SourceManagerTestCase.test_display_source_python.
llvm-svn: 141021
2011-10-03 20:56:39 +00:00
Greg Clayton 9a37766e7c Removed lldb::SBSourceManager_impl. We export everything in the lldb namespace
and this implemenation that backs our lldb::SBSourceManager should not be
exported. 

llvm-svn: 140930
2011-10-01 02:59:24 +00:00
Greg Clayton d74713b18c Bumped Xcode project version for lldb-80 and debugserver-145.
llvm-svn: 140922
2011-10-01 02:01:36 +00:00
Greg Clayton bdf3162f53 Fixed an issue where a variable whose value is in a register might end up
not saying that its children are load addresses.

llvm-svn: 140921
2011-10-01 01:53:20 +00:00
Greg Clayton cfebbcfedd Print object names in case we have a .o file in a static archive when logging
DWARF errors and warnings.

llvm-svn: 140918
2011-10-01 01:37:20 +00:00
Jason Molenda 90455f3357 Fix segfault in UniqueDWARFASTTypeList::Find if we are comparing
an anonymous struct type (which lacks any name).

llvm-svn: 140917
2011-10-01 01:28:37 +00:00
Johnny Chen b49b7b53b1 Add SBFrame.WatchLocation() to find and watch the location pointed to by
a variable usng the frame as the scope.

Add TestSetWatchpoint.py to exercise this API.  Also fix some SWIG Python
docstrings.

llvm-svn: 140914
2011-10-01 01:19:45 +00:00
Greg Clayton 1ed54f50c5 Cleaned up the the code that figures out the inlined stack frames given a
symbol context that represents an inlined function. This function has been
renamed internally to:

bool
SymbolContext::GetParentOfInlinedScope (const Address &curr_frame_pc, 
                                        SymbolContext &next_frame_sc, 
                                        Address &next_frame_pc) const;
                                        
And externally to:

SBSymbolContext
SBSymbolContext::GetParentOfInlinedScope (const SBAddress &curr_frame_pc, 
                                          SBAddress &parent_frame_addr) const;

The correct blocks are now correctly calculated.

Switched the stack backtracing engine (in StackFrameList) and the address
context printing over to using the internal SymbolContext::GetParentOfInlinedScope(...) 
so all inlined callstacks will match exactly.

llvm-svn: 140910
2011-10-01 00:45:15 +00:00
Jason Molenda f56c0137e2 Small fix to "frame select" sans frame # feature added yesterday.
llvm-svn: 140901
2011-09-30 23:12:14 +00:00
Greg Clayton 6535dae3b7 Remove the "-feliminate-unused-debug-types" OTHER_CFLAGS.
llvm-svn: 140893
2011-09-30 22:08:47 +00:00
Johnny Chen 86268e4459 o lldbtest.py:
Add a keyword argument 'endstr' to TestBase.expect() method to assert that the output
will end with 'endstr'.

Add TestBase.switch_to_thread_with_stop_reason(stop_reason) to select the thread with
the stop reason = 'stop_reason' as the current thread.

o TestWatchLocation.py:

Modified to switch to the stopped thread with stop reason = watchpoint and to evaluate
an expression with expected output for stronger assertion.

llvm-svn: 140890
2011-09-30 21:48:35 +00:00
Greg Clayton 0bd4e1b8c9 Removed some commented out code from the DWARF parser.
Also reduce the size of the lldb_private::Symbol objects by removing the
lldb_private::Function pointer that was in each symbol. Running Instruments
has shown that when debugging large applications with DWARF in .o files that
lldb_private::Symbol objects are one of the highest users of memory. No one
was using the Symbol::GetFunction() call anyway.

llvm-svn: 140881
2011-09-30 20:52:25 +00:00
Greg Clayton 3360b411a5 Destroy a target when it is deleted.
llvm-svn: 140845
2011-09-30 04:14:52 +00:00
Greg Clayton 753406221b After deleting a target, clear the target object and remove orphaned modules.
llvm-svn: 140843
2011-09-30 03:29:05 +00:00
Greg Clayton 2bc22f83ad <rdar://problem/10212450>
Don't parse function types all the time, only parse them lazily.

llvm-svn: 140842
2011-09-30 03:20:47 +00:00
Johnny Chen b62a3be1a2 Add an accompanying option to the 'frame variable -w' command to, instead of watching the variable,
watch the location pointed to by the variable.  An example,

(lldb) frame variable -w write -x 1 -g g_char_ptr
(char *) g_char_ptr = 0x0000000100100860 ""...
Watchpoint created: WatchpointLocation 1: addr = 0x100100860 size = 1 state = enabled type = w
    declare @ '/Volumes/data/lldb/svn/trunk/test/functionalities/watchpoint/hello_watchlocation/main.cpp:21'

...

(lldb) c
Process 3936 resuming

...

rocess 3936 stopped
* thread #2: tid = 0x3403, 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27, stop reason = watchpoint 1
    frame #0: 0x00000001000009b7 a.out`do_bad_thing_with_location(char*, char) + 23 at main.cpp:27
   24  	do_bad_thing_with_location(char *char_ptr, char new_val)
   25  	{
   26  	    *char_ptr = new_val;
-> 27  	}
   28  	
   29  	uint32_t access_pool (uint32_t flag = 0);
   30  	
(lldb) 

Also add TestWatchLocation.py test to exercise this functionality.

llvm-svn: 140836
2011-09-30 01:08:48 +00:00