Commit Graph

3634 Commits

Author SHA1 Message Date
Jim Ingham a0b151715a If we can't find the python function for a given summary, print the name of the function in the warning message.
llvm-svn: 170729
2012-12-20 20:08:17 +00:00
Jason Molenda 253a19a004 Clarify the comments in PlatformDarwin::LocateExecutableScriptingResource
a bit.

llvm-svn: 170641
2012-12-20 02:53:18 +00:00
Enrico Granata 04e92149a1 <rdar://problem/12903081>
When looking for the Python script to load for a given module, replace dots with underscores if there are any after stripping the extension
This means that for a module named foo.devel.xyz a file named foo_devel.py will be what we try to load

llvm-svn: 170633
2012-12-20 02:07:45 +00:00
Enrico Granata 557fd00a6f <rdar://problem/12446222>
Implement the ability for Python commands to be interrupted by pressing CTRL+C
Also add a new Mutex subclass that attempts to be helpful for debugging by logging actions performed on it

FYI of all interested - there is a separate deadlocking issue related to how LLDB dispatches CTRL+C that might cause LLDB to deadlock upon pressing CTRL+C while in a Python command.
This is not a regression, and was just previously masked by us not even trying to bail out of Python commands, so that it would not be clear from a user perspective whether we were
deadlocked or stuck in an inconsistent state within the Python interpreter.

llvm-svn: 170612
2012-12-19 23:42:07 +00:00
Sean Callanan 7be70e8528 This patch removes the SymbolFileSymtab support
for reporting class types from Objective-C runtime
class symbols.  Instead, LLDB now queries the 
Objective-C runtime for class types.

We have also added a (minimal) Objective-C runtime
type vendor for Objective-C runtime version 1, to 
prevent regressions when calling class methods in
the V1 runtime.

Other components of this fix include:

- We search the Objective-C runtime in a few more
  places.

- We enable enumeration of all members of
  Objective-C classes, which Clang does in certain
  circumstances.

- SBTarget::FindFirstType and SBTarget::FindTypes
  now query the Objective-C runtime as needed.

- I fixed several test cases.

<rdar://problem/12885034>

llvm-svn: 170601
2012-12-19 23:05:01 +00:00
Jason Molenda f17b5ac6e1 <rdar://problem/11961650>
Update the debugserver "qProcessInfo" implementation to return the
cpu type, cpu subtype, OS and vendor information just like qHostInfo
does so lldb can create an ArchSpec based on the returned values.

Add a new GetProcessArchitecture to GDBRemoteCommunicationClient akin
to GetHostArchitecture.  If the qProcessInfo packet is supported,
GetProcessArchitecture will return the cpu type / subtype of the 
process -- e.g. a 32-bit user process running on a 64-bit x86_64 Mac
system. 

Have ProcessGDBRemote set the Target's architecture based on the 
GetProcessArchitecture when we've completed an attach/launch/connect.

llvm-svn: 170491
2012-12-19 02:54:03 +00:00
Greg Clayton 0b510bca73 Don't read the SP when getting argument values from registers in case the SP isn't available. We don't want the availability of SP to limit when we get get arguments from registers.
llvm-svn: 170476
2012-12-18 23:45:33 +00:00
Daniel Malea f00b751175 Fix typo in error message (print requested URL instead of command name when plugin missing)
llvm-svn: 170447
2012-12-18 20:00:40 +00:00
Daniel Malea f0da371bdc Allow reading registers by thread ID in ProcessMonitor (Linux implementation)
- make FreeBSD ProcessMonitor API thread-ready

Patch by Matt Kopec!

llvm-svn: 170445
2012-12-18 19:50:15 +00:00
Jim Ingham 1b5792e5ad Adding events when watchpoints are set or changed.
<rdar://problem/11597849>

llvm-svn: 170400
2012-12-18 02:03:49 +00:00
Sean Callanan f53f578567 Removed a possible use of unchecked NULL from
the AST result synthesizer's logging.

<rdar://problem/12889053>

llvm-svn: 170396
2012-12-18 00:50:17 +00:00
Jim Ingham 17fafa155c Remove the “len” defaulted parameter from CommandReturnObject::AppendMessage, AppendWarning and AppendError. Nobody was using them, and it meant if you accidentally used the AppendWarning when you meant AppendWarningWithFormat with an integer in the format string, it would compile and then return your string plus some unknown amount of junk.
llvm-svn: 170266
2012-12-15 02:40:54 +00:00
Greg Clayton 2e1f745da7 <rdar://problem/11990131>
Memory read's "repeat" behavior forgets "-t" option. It also formatted the type as hex bytes + ASCII. Now we revert to the default format when displaying types unless the user sets the format option manually.

llvm-svn: 170265
2012-12-15 02:08:17 +00:00
Greg Clayton 81409635e0 <rdar://problem/12156204>
x/a print wouldn't always reset the word size to the size of a pointer if a previous memory read using x/<gdb-format> had been used that set it to another width.

llvm-svn: 170264
2012-12-15 01:44:51 +00:00
Greg Clayton 3cb4c7d6a0 <rdar://problem/12582041>
_regexp_attach doesn't handle the case where no arguments are provided. It now also handles the case you were you pass options.

llvm-svn: 170262
2012-12-15 01:19:07 +00:00
Sean Callanan 7038627168 Fixed two conditionals that I accidentally
reversed in r170152.

<rdar://problem/12886584>

llvm-svn: 170256
2012-12-14 23:43:03 +00:00
Greg Clayton 1fb2e7dfe1 Switch "disassemble" with no arguments or options to disassemble the current frame instead of around the current PC.
llvm-svn: 170254
2012-12-14 22:36:35 +00:00
Greg Clayton 00a204c87d Remove unused variable.
llvm-svn: 170253
2012-12-14 22:35:50 +00:00
Daniel Malea c63dddd800 Avoid possible overflow when reading inferior memory (and logging is enabled)
Patch by Matt Kopec!

llvm-svn: 170242
2012-12-14 21:07:07 +00:00
Andrew Kaylor 7b6376ba57 Enabling ItaniumABILanguageRuntime and SymbolFileDWARFDebugMap plugins on non-Apple platforms.
llvm-svn: 170241
2012-12-14 21:03:37 +00:00
Filipe Cabecinhas 78ae27064a Fixed a typo.
llvm-svn: 170239
2012-12-14 20:38:58 +00:00
Andrew Kaylor 7a73251dea Change crash handling to use eStateStopped rather than eStateCrashed.
llvm-svn: 170224
2012-12-14 18:24:34 +00:00
Greg Clayton 136dff8725 Cleaned up the UUID mismatch just printing itself whenever it wants to by allowing an optional feedback stream to be passed along when getting the symbol vendor.
llvm-svn: 170174
2012-12-14 02:15:00 +00:00
Greg Clayton fff17252a1 <rdar://problem/12878674>
Remove debug asserts.

llvm-svn: 170173
2012-12-14 02:13:44 +00:00
Sean Callanan 2dd8b49d05 Rmoved the old LLVM disassembler based on libedis.
llvm-svn: 170171
2012-12-14 01:29:59 +00:00
Sean Callanan fa3ab4599d Some incorrect debug information caused LLDB
to report a structure with an array of size 1
at the end without accounting for that array
when reporting the struct's total size to Clang.

LLDB now coerces such an array to size 0.

<rdar://problem/12822204>

llvm-svn: 170168
2012-12-14 00:54:13 +00:00
Greg Clayton 6851099ed3 Fix a parser_type to get created with the right AST, and also make variables made from symbols to not be "void * const", but just "void *".
llvm-svn: 170165
2012-12-14 00:26:21 +00:00
Enrico Granata 9e7b388589 <rdar://problem/11689939>
Supporting a compact display syntax for ObjC pointers where 0x00.....0 is replaced by a much more legible "nil"
e.g. this would show:
(NSArray *) $2 = nil
instead of:
(NSArray *) $2 = 0x0000000000000000 <nil>

llvm-svn: 170161
2012-12-13 23:50:33 +00:00
Jim Ingham c7078c228a Fixed a thinko in the handling of the case where more than one thread had stopped with real stop reasons at the same time.
Should be that if any of the threads wants to stop, we should stop.  The opposite was what was actually happening

<rdar://problem/12869725>

llvm-svn: 170153
2012-12-13 22:24:15 +00:00
Sean Callanan bf4b7be68e Removed the == and != operators from ArchSpec, since
equality can be strict or loose and we want code to
explicitly choose one or the other.

Also renamed the Compare function to IsEqualTo, to
avoid confusion.

<rdar://problem/12856749>

llvm-svn: 170152
2012-12-13 22:07:14 +00:00
Jason Molenda 0f47b2a631 <rdar://problem/12831670>
For iOS native lldb, don't initialize the ModuleList notifier
callback.  See the added comment for details on how this is a problem
in that environment.  We'll need to restructure how the ModuleDidLoad
notification is called vrs. when the DynamicLoader pluging has had
a chance to set the Sectino load addresses.

llvm-svn: 170082
2012-12-13 01:54:18 +00:00
Sean Callanan b36c6c0955 Made "target modules add" flush the process to
reset stack frames etc.

<rdar://problem/12842024>

llvm-svn: 170079
2012-12-13 01:39:39 +00:00
Jason Molenda 4fa896da11 Remove insufficient linkedit address check; the problem
is deeper than that and avoiding the crash in this
one part of code won't solve anything.  I know where
the real problem is now.

llvm-svn: 170068
2012-12-13 01:13:00 +00:00
Enrico Granata eb17816bf4 <rdar://problem/10898363>
Emitting a warning when defining a summary or a synthetic provider and the function/class name provided does not correspond to a valid scripting object

Also using this chance to edit a few error messages from weird "internal error" markers to actual user-legible data!

llvm-svn: 170013
2012-12-12 20:11:05 +00:00
Jim Ingham c627682ef7 Fixed a few bugs in the "step in" thread plan logic.
Added a "step-in-target" flag to "thread step-in" so if you have something like:

Process 28464 stopped
* thread #1: tid = 0x1c03, function: main , stop reason = breakpoint 1.1
    frame #0: 0x0000000100000e08 a.out`main at main.c:62
   61         
-> 62         int A6 = complex (a(4), b(5), c(6)); // Stop here to step targetting b and hitting breakpoint.
   63             

and you want to get into "complex" skipping a, b and c, you can do:

(lldb) step -t complex
Process 28464 stopped
* thread #1: tid = 0x1c03, function: complex , stop reason = step in
    frame #0: 0x0000000100000d0d a.out`complex at main.c:44
   41     
   42     int complex (int first, int second, int third)
   43     {
-> 44         return first + second + third;  // Step in targetting complex should stop here
   45     }
   46         
   47     int main (int argc, char const *argv[])

llvm-svn: 170008
2012-12-12 19:58:40 +00:00
Sean Callanan a87ecb43ab Minor grammar and style fixes in documentation.
<rdar://problem/12861963>
<rdar://problem/12861904>

llvm-svn: 169997
2012-12-12 18:02:47 +00:00
Greg Clayton 6ab801394f Allow LLDB to work with dSYM files that have a DWARF compile unit with nothing else to support clang's new -gline-tables-only mode of compiling.
llvm-svn: 169994
2012-12-12 17:30:52 +00:00
Enrico Granata 7b8c513f08 Option changes:
the option to print the runtime-specific description has been modified in the frame variable, memory read and expression command.

All three commands now support a --object-description option, with a shortcut of -O (uppercase letter o)

This is a breaking change:
frame variable used --objc as the long option name
expression used -o as a shortcut
memory read uses --objd as the long option name

Hopefully, most users won't be affected by the change since people tend to access "expression --object-description" under the alias "po" which still works

The test suite has been tweaked accordingly.

llvm-svn: 169961
2012-12-12 03:23:37 +00:00
Jason Molenda a3f24b3cec Add a LOG_TARGET log to Target::SetDefaultArchitecture
to track any architecture setting there.

llvm-svn: 169958
2012-12-12 02:23:56 +00:00
Greg Clayton 89deb06bbb <rdar://problem/12780507>
Fix add-dsym ("target symbols add") to correctly add a dSYM file when the target arch doesn't match the arch of the module.

llvm-svn: 169952
2012-12-12 01:15:30 +00:00
Enrico Granata 9d14084b45 Adding a validation callback mechanism to OptionValueString (such a feature might theoretically be added to the general OptionValue base class should the need arise)
Using this mechanism, making sure that the options to pass a summary string or a named summary to frame variable do not have invalid values

<rdar://problem/11576143>

llvm-svn: 169927
2012-12-11 22:42:19 +00:00
Sean Callanan 496970f6ee Fixed the IRInterpreter's handling of "this" and
"self" when those pointers are in registers.
Previously in this case the IRInterpreter would
handle them just as if the user had typed in
"$rdi", which isn't safe because $rdi is passed
in through the argument struct.

Now we correctly break out all three cases (i.e.,
normal variables in registers, $reg, and this/self),
and handle them in a way that's a little bit easier
to read and change.

This results in more accurate printing of "this" and
"self" pointers all around.  I have strengthened the
optimized-code test case for Objective-C to ensure
that we catch regressions in this area reliably in
the future.

<rdar://problem/12693963>

llvm-svn: 169924
2012-12-11 22:39:36 +00:00
Jim Ingham c3faa19577 Broadcast an event when the selected thread is changed.
<rdar://problem/10976636>

llvm-svn: 169810
2012-12-11 02:31:48 +00:00
Enrico Granata c953a6a5eb <rdar://problem/12639506>
Make sure that the user's choice of a format for dumping aggregate types is persisted to child members

llvm-svn: 169809
2012-12-11 02:17:22 +00:00
Jason Molenda 21d1e9e53d Update comments around ABISysV_x86_64::RegisterIsCalleeSaved to
make it clear that this is the list of callee-saved registers,
add reference to the ABI doc that this comes from.

llvm-svn: 169807
2012-12-11 01:20:57 +00:00
Greg Clayton 6740853784 <rdar://problem/12842032>
Don't load __LINKEDIT segments when dynamically loading kexts.

llvm-svn: 169806
2012-12-11 01:20:51 +00:00
Han Ming Ong df4dd92389 Removed debugging code.
llvm-svn: 169799
2012-12-11 00:24:58 +00:00
Enrico Granata e6a6d9ae07 <rdar://problem/12709976>
Adding a summary for NSError

llvm-svn: 169792
2012-12-10 23:30:25 +00:00
Han Ming Ong 717c97e884 <rdar://problem/12850287>
When there is XPC connection error, we will report it now.

llvm-svn: 169787
2012-12-10 23:02:33 +00:00
Greg Clayton 3b188b1752 <rdar://problem/11844604>
When displaying function.name-with-args format will now print "varname=<unavailable>" instead of omitting argument names and values when there is an error reading the value.

llvm-svn: 169781
2012-12-10 22:26:34 +00:00