Commit Graph

81 Commits

Author SHA1 Message Date
Enrico Granata 4a3274af96 Removing cascading through inheritance chains for data formatters
This is the feature that allowed the user to have things like:

class Base { ... };
class Derived : public Base { ... };

and have formatters defined for Base work automatically for Derived.

This feature turned out to be too expensive since it requires completing types.

This patch takes care of removing cascading (other than typedefs chain cascading), updating the test suite accordingly, and adding required Cocoa class names to keep the AppKit formatters working

llvm-svn: 153272
2012-03-22 19:55:55 +00:00
Johnny Chen 907c233591 Add "frame info" command to the "Examining Thread State" section, as suggested by Andrew Trick.
llvm-svn: 153204
2012-03-21 18:14:37 +00:00
Enrico Granata a7a3a4c79e Editing documentation to reflect recent changes in the formatters support
llvm-svn: 153068
2012-03-19 23:57:06 +00:00
Enrico Granata 3713cadd09 Changed the URL to the CFString summary provider; slightly reworded the relevant piece of content
llvm-svn: 152972
2012-03-17 02:14:46 +00:00
Enrico Granata 0fddd5631d Pointing users to a new example of synthetic children provider en lieu of the old StdVector example which was removed earlier today
llvm-svn: 152971
2012-03-17 02:04:20 +00:00
Johnny Chen a113abce1d rdar://problem/11057400
Add documentation for watchpoint commands.

llvm-svn: 152882
2012-03-16 00:44:02 +00:00
Johnny Chen f224ea69e6 Minor modification.
llvm-svn: 151182
2012-02-22 19:02:32 +00:00
Greg Clayton 7f7d6f50ce Updated our main LLDB page as it was vastly out of date.
llvm-svn: 151175
2012-02-22 18:01:09 +00:00
Enrico Granata f4ca30d74b fixing documentation to refer to the correct name of the module init function __lldb_init_module
llvm-svn: 150992
2012-02-20 22:05:47 +00:00
Greg Clayton 53905d198c Document that we now support the GDB shorthand format syntax on any commands
that take formats or sizes.

Also document that scalar expression results can be used in any command using
expressions inside backticks.

llvm-svn: 150652
2012-02-16 02:10:58 +00:00
Greg Clayton ba728e6d7d Added some clarifications about when the __lldb_init_module would be called
and showed a work around for when this won't.

llvm-svn: 149046
2012-01-26 05:36:07 +00:00
Greg Clayton 690b034161 Fix page title.
llvm-svn: 149004
2012-01-26 00:32:22 +00:00
Jim Ingham feb332c0f7 Better name for the Python Scripting.
llvm-svn: 148770
2012-01-24 02:44:55 +00:00
Jim Ingham 6ae0f99f59 Better name for the python reference.
llvm-svn: 148769
2012-01-24 02:44:07 +00:00
Jim Ingham 87a593687c Proof-reading the python docs.
llvm-svn: 148768
2012-01-24 02:40:42 +00:00
Greg Clayton d879a6305b Added a python FAQ page with detailed examples of how to add python functions
to breakpoints, creating new LLDB commands using python modules and also how
to run scripts from the command line. 

llvm-svn: 148650
2012-01-22 02:55:08 +00:00
Greg Clayton 13d284b284 Updated HTML with info for ${function.name-with-args}
llvm-svn: 148111
2012-01-13 08:41:20 +00:00
Sean Callanan 49e446d9ea Added examples of commands that list and delete
breakpoints.

llvm-svn: 147549
2012-01-04 21:20:39 +00:00
Jim Ingham 73ca05a2a0 Add the ability to capture the return value in a thread's stop info, and print it
as part of the thread format output.
Currently this is only done for the ThreadPlanStepOut.
Add a convenience API ABI::GetReturnValueObject.
Change the ValueObject::EvaluationPoint to BE an ExecutionContextScope, rather than
trying to hand out one of its subsidiary object's pointers.  That way this will always
be good.

llvm-svn: 146806
2011-12-17 01:35:57 +00:00
Eli Friedman 00fda923b6 Fix <title> on webpage.
llvm-svn: 146085
2011-12-07 22:09:43 +00:00
Greg Clayton 04b78e9f20 Updated the grossly out of date status page.
llvm-svn: 143092
2011-10-27 01:33:27 +00:00
Jason Molenda 4223b3b380 typeo
llvm-svn: 142900
2011-10-25 01:28:56 +00:00
Jason Molenda b278f1e191 Add examples of shortest-possible lldb commands where appropriate.
Add new "Examining Variables" section.
Updated a few command entries to match current lldb behavior.

llvm-svn: 142898
2011-10-25 01:28:31 +00:00
Jason Molenda a98d106d49 Document nexti, show some shorter versions of long lldb
commands.

llvm-svn: 142715
2011-10-22 02:31:42 +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
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 c12ec2f600 Add a simple scenario of emacs and lldb interaction.
llvm-svn: 141347
2011-10-07 01:06:37 +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 98f8c5252e Added GDB/LLDB commands for the "target stop-hook add" command.
llvm-svn: 139529
2011-09-12 19:56:07 +00:00
Greg Clayton dc55a80da3 Added help on stack frame selection compared to GDB and corrected the register
command help to match the current LLDB.

llvm-svn: 139313
2011-09-08 20:14:22 +00:00
Enrico Granata d769c128b6 other documentation changes
llvm-svn: 139271
2011-09-08 00:50:01 +00:00
Enrico Granata 645a763d72 documentation changes (WIP)
llvm-svn: 139249
2011-09-07 19:20:42 +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
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
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
Enrico Granata 5a61fc0da5 Exception-awareness for gnu_libstdcpp formatters ; Documentation update
llvm-svn: 138236
2011-08-22 16:10:25 +00:00
Jim Ingham 096675d781 Add "--" before providing the file & command args when launching lldb from the command line.
llvm-svn: 137790
2011-08-17 00:23:09 +00:00
Johnny Chen d63991ca4a Fix some typos.
llvm-svn: 136919
2011-08-04 21:01:04 +00:00
Enrico Granata d55546b27a when typing a summary string you can use the %S symbol to explicitly indicate that you want the summary to be used to print the target object
(e.g. ${var%S}). this might already be the default if your variable is of an aggregate type
new feature: synthetic filters. you can restrict the number of children for your variables to only a meaningful subset
 - the restricted list of children obeys the typical rules (e.g. summaries prevail over children)
 - one-line summaries show only the filtered (synthetic) children, if you type an expanded summary string, or you use Python scripts, all the real children are accessible
 - to provide a synthetic children list use the "type synth add" command, as in:
   type synth add foo_type --child varA --child varB[0] --child varC->packet->flags[1-4]
   (you can use ., ->, single-item array operator [N] and bitfield operator [N-M]; array slice access is not supported, giving simplified names to expression paths is not supported)
 - a new -S option to frame variable and target variable lets you override synthetic children and instead show real ones

llvm-svn: 135731
2011-07-22 00:16:08 +00:00
Enrico Granata 1490c6fd8f Fixed a bug where deleting a regex summary would not immediately reflect in the variables display
The "systemwide summaries" feature has been removed and replaced with a more general and
powerful mechanism.
Categories:
 - summaries can now be grouped into buckets, called "categories" (it is expected that categories
   correspond to libraries and/or runtime environments)
 - to add a summary to a category, you can use the -w option to type summary add and give
   a category name (e.g. type summary add -f "foo" foo_t -w foo_category)
 - categories are by default disabled, which means LLDB will not look into them for summaries,
   to enable a category use "type category enable". once a category is enabled, LLDB will
   look into that category for summaries. the rules are quite trivial: every enabled category
   is searched for an exact match. if an exact match is nowhere to be found, any match is
   searched for in every enabled category (whether it involves cascading, going to base classes,
   ...). categories are searched into the order in which they were enabled (the most recently
   enabled category first, then the second most and so on..)
 - by default, most commands that deal with summaries, use a category named "default" if no
   explicit -w parameter is given (the observable behavior of LLDB should not change when
   categories are not explicitly used)
 - the systemwide summaries are now part of a "system" category

llvm-svn: 135463
2011-07-19 02:34:21 +00:00
Enrico Granata f2bbf717f7 Python summary strings:
- you can use a Python script to write a summary string for data-types, in one of
   three ways:
    -P option and typing the script a line at a time
    -s option and passing a one-line Python script
    -F option and passing the name of a Python function
   these options all work for the "type summary add" command
   your Python code (if provided through -P or -s) is wrapped in a function
   that accepts two parameters: valobj (a ValueObject) and dict (an LLDB
   internal dictionary object). if you use -F and give a function name,
   you're expected to define the function on your own and with the right
   prototype. your function, however defined, must return a Python string
 - test case for the Python summary feature
 - a few quirks:
  Python summaries cannot have names, and cannot use regex as type names
  both issues will be fixed ASAP
major redesign of type summary code:
 - type summary working with strings and type summary working with Python code
   are two classes, with a common base class SummaryFormat
 - SummaryFormat classes now are able to actively format objects rather than
   just aggregating data
 - cleaner code to print descriptions for summaries
the public API now exports a method to easily navigate a ValueObject hierarchy
New InputReaderEZ and PriorityPointerPair classes
Several minor fixes and improvements

llvm-svn: 135238
2011-07-15 02:26:42 +00:00
Enrico Granata 79dce0a66e fixing missing RefCounter class
llvm-svn: 135012
2011-07-13 00:00:57 +00:00
Enrico Granata f4efecd958 smarter summary strings:
- formats %s %char[] %c and %a now work to print 0-terminated c-strings if they are applied to a char* or char[] even without the [] operator (e.g. ${var%s})
 - array formats (char[], intN[], ..) now work when applied to an array of a scalar type even without the [] operator (e.g. ${var%int32_t[]})
LLDB will not crash because of endless loop when trying to obtain a summary for an object that has no value and references itself in its summary string
In many cases, a wrong summary string will now display an "<error>" message instead of giving out an empty string

llvm-svn: 135007
2011-07-12 22:56:10 +00:00
Enrico Granata fc7a7f3b75 final fix for the global constructors issue
new GetValueForExpressionPath() method in ValueObject to navigate expression paths in a more bitfield vs slices aware way
changes to the varformats.html document (WIP)

llvm-svn: 134679
2011-07-08 02:51:01 +00:00
Enrico Granata 8f11a4ac96 new webpage describing type command
llvm-svn: 134575
2011-07-07 00:39:55 +00:00
Jim Ingham 57f29f8014 Added a few trivial mods.
llvm-svn: 133084
2011-06-15 21:01:30 +00:00