Commit Graph

189 Commits

Author SHA1 Message Date
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
Caroline Tice 8f7eb81bf6 Add an introduction to the scripting example web page.
llvm-svn: 133061
2011-06-15 16:37:40 +00:00
Caroline Tice cbc0c247e1 Make a few minor changes/corrections to scripting
example on the web.

llvm-svn: 132554
2011-06-03 16:38:17 +00:00
Greg Clayton cbd2e3b001 Cleanup the sidebar and include a link to the new python scripting tutorial.
llvm-svn: 132515
2011-06-02 23:50:04 +00:00
Caroline Tice 54923eced3 Add the web page for the 'Using Python Scripting to
Debug a Program in LLDB' example.

llvm-svn: 132513
2011-06-02 23:40:56 +00:00
Greg Clayton 8a51be9e1b Reroute the blog link to the LLVM blog site.
llvm-svn: 130014
2011-04-22 21:03:40 +00:00
Greg Clayton e302c2c785 Added a blog page with a description and tutorial on using the new "command regex"
command.

llvm-svn: 129898
2011-04-21 01:09:42 +00:00
Greg Clayton 471257c132 Added a few more commands, but I mainly wanted to include how to run lldb
with the same program arguments for a process over and over without having
to specify them (like you can with gdb with the "--args" option).

llvm-svn: 129332
2011-04-12 00:43:35 +00:00
Greg Clayton 0cb4acfc8d Use the same colors in the LLDB/GDB table as the sidebar so things look
consistent and also to lighten up the page a bit.

llvm-svn: 128939
2011-04-05 21:44:24 +00:00
Greg Clayton d5a395aa9c Removed a stray '\' character.
llvm-svn: 128934
2011-04-05 21:40:10 +00:00
Jim Ingham f55a836181 Little bit of cleanup, and added a few new bits.
llvm-svn: 128678
2011-03-31 21:56:13 +00:00
Greg Clayton efcb603008 Updated the web site with a getting started with LLDB and also some resources
to help GDB users figure out the equivalent commands in LLDB.

llvm-svn: 128518
2011-03-30 01:02:37 +00:00
Greg Clayton 678f396d20 Added Mac OS X build instructions and included the Linux build instructions
that Stephen Wilson sent out.

llvm-svn: 128116
2011-03-22 22:39:26 +00:00
Caroline Tice ab174c9d44 Apply patch from Bruce Mitchener to fix spelling errors.
llvm-svn: 123002
2011-01-07 17:16:03 +00:00
Greg Clayton 7a98e5b4e5 Clarified some caveats for thread format strings.
llvm-svn: 115491
2010-10-04 03:06:05 +00:00
Greg Clayton 877b59dc9c Added documentation for the new frame and thread format strings.
llvm-svn: 115488
2010-10-04 02:33:45 +00:00
Christopher Friesen fa7936bc8d Fix utilities text
llvm-svn: 105877
2010-06-12 03:34:21 +00:00
Chris Lattner 2292bcc3cb ssi is annoying to test :)
llvm-svn: 105854
2010-06-11 23:12:28 +00:00
Chris Lattner af73b04924 rearrange the sidebar a little bit to separate the high level status
from the internal and usage dox.

llvm-svn: 105853
2010-06-11 23:11:13 +00:00
Chris Lattner 649caee022 missed a chunk
llvm-svn: 105851
2010-06-11 23:07:52 +00:00
Chris Lattner 4519346079 that seemed to work, switch the rest of the files to use the shared sidebar.incl file.
llvm-svn: 105850
2010-06-11 23:07:14 +00:00
Chris Lattner 2812000273 split the sidebar out to an SSI file so it isn't duplicated everywhere.
llvm-svn: 105849
2010-06-11 23:04:20 +00:00
Chris Lattner 2a49439a0e fix a few typos.
llvm-svn: 105847
2010-06-11 22:52:46 +00:00
Jason Molenda 572f232f18 Spelling fix from Sebastian Redl.
llvm-svn: 105785
2010-06-10 08:23:00 +00:00
Benjamin Kramer fc6980b295 Add some missing close tags.
llvm-svn: 105784
2010-06-10 08:12:17 +00:00
Eric Christopher 84f89a8648 Fix paragraph tag. Patch by Mike Miller.
llvm-svn: 105783
2010-06-10 05:35:26 +00:00
Greg Clayton 86f0baa8f0 Fixed an error in the architecture page.
llvm-svn: 105779
2010-06-10 02:50:28 +00:00
Greg Clayton 491fbdf139 Updated the web pages with new navigable web pages.
llvm-svn: 105778
2010-06-10 02:48:57 +00:00
Greg Clayton c3df232164 Removing www files, will replace them with new ones after this commit.
llvm-svn: 105777
2010-06-10 02:48:13 +00:00
Jason Molenda a9de79c6ae I declare "x86-64" to be the official formatting for
this page.

llvm-svn: 105717
2010-06-09 09:27:53 +00:00
Eric Christopher e56c3af033 Use correct name for the OS here too.
llvm-svn: 105701
2010-06-09 07:32:16 +00:00
Chris Lattner 30fdc8d841 Initial checkin of lldb code from internal Apple repo.
llvm-svn: 105619
2010-06-08 16:52:24 +00:00