[Lldb-commits] [lldb] r130014 - in /lldb/trunk/www: blog.html sidebar.incl

Greg Clayton gclayton at apple.com
Fri Apr 22 14:03:41 PDT 2011

Author: gclayton
Date: Fri Apr 22 16:03:40 2011
New Revision: 130014

URL: http://llvm.org/viewvc/llvm-project?rev=130014&view=rev
Reroute the blog link to the LLVM blog site.


Removed: lldb/trunk/www/blog.html
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/blog.html?rev=130013&view=auto
--- lldb/trunk/www/blog.html (original)
+++ lldb/trunk/www/blog.html (removed)
@@ -1,128 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-<link href="style.css" rel="stylesheet" type="text/css" />
-<title>LLDB FAQ</title>
-<div class="www_title">
-  The <strong>LLDB</strong> Debugger
-<div id="container">
-<div id="content">
-  <!--#include virtual="sidebar.incl"-->
-  <div id="middle">
-    <div class="post">
-    <h1 class ="postheader"><div align="right" padding=20>April 20, 2011  </div><div align="left">Regular Expression Commands</div></h1>
-    <div class="postcontent">
-    <p>Greetings LLDB users. I want to start writing regular blog posts
-        for the new and cool features and things you can do in LLDB. Today I
-        will start with one that was just added: <b>regular expression commands</b>.
-        What is a regular expression command? It is a command that you can
-        define by giving it a command name, where the command will have its raw arguments be
-        matched against one or more regular expressions. The first regular 
-        expression to match your command's raw arguments wins and gets to 
-        use substitutions to place argument snippets into a new command that
-        will get executed.</p>
-        <p>Lets supposed we want to use the <code>"f"</code> as a command to
-            select a frame by frame index. The command to select a frame by the
-            frame index is the <code>"frame select <num>"</code> command
-            which you might not always want to type out (even with out command
-            completion).
-            We can make this a bit easier this using a regular expression command:
-        <p>
-        <code>(lldb) command regex f 's/([0-9]+)/frame select %1/'</code>
-        </p>
-        <p><code>"command regex f"</code> tells the interpreter to create a new
-            regex command named <code>"f"</code>, and when a command is entered
-            on the command line that starts with <code>"f"</code>, it will match
-            the remaining command text against the regular expression 
-            <code>"([0-9]+)"</code>, and it if matches, it will substitute any
-            parenthesized subexpressions as needed. Here we enclosed the number
-            regular expression <code>"[0-9]+"</code> in parentheses which will
-            save the results in the first match and allow the matching string
-            to be substitued into the result <code>"frame select %1"</code>.
-            So now we can use our new command and it will show us what command
-            resulted from our regular expression substitution:
-        <p>            
-            <p>
-            <code>(lldb) f 12<br>
-                  frame select 12
-            </code>
-            </p>
-        <p>Leading spaces will always be stripped, but there may be trailing spaces
-            since we are processing the remaining raw command string that follows
-            the initial <code>f</code> command name, plus any leading spaces. The regular expression
-            is also just looking for any sequence of one or more digits. Our
-            current regular expression will actually match <code>"f 11 22 33"</code>:
-            <p>
-            <code>(lldb) f 11 22 33<br>
-                  frame select 11
-            </code>
-            </p>
-            Since this isn't desired, we should make the regular expression more complete by checking for
-            the start of the line (<code>^</code>) and the end of the line (<code>$</code>)
-            and also allow for zero or more spaces (<code>[[:space:]]*</code>) 
-            to come after the number. Our newer and safer regular expression command line looks like:
-            <p>
-            <code>(lldb) command regex f 's/^([0-9]+)[[:space:]]*$/frame select %1/'</code>
-            </p>
-            <p>Now we can type in a command as <code>"f 12  "</code> (note the trailing
-                spaces), and still get correct substitutions, while our previous
-                example of <code>"f 11 22 33"</code> will no longer match:
-                <p>
-                <code>(lldb) f 11 22 33<br>
-                    error: Command contents '11 22 33' failed to match any regular expression in the 'f' regex command.
-                </code>
-            <p>Lets take this a bit further by also using the <code>f</code> command
-                to emulate GDB's <code>finish</code> command when it is typed without
-                any arguments. We will also modify this command to watch for a single
-                "+" or "-" followed by a digit to signify a relative frame change
-                using the frame select command with the --relative option:
-            </p>
-            <p>
-            <code>(lldb) frame select --relative <offset></code> 
-            <p>
-                Multiple regular expressions can be entered in on the command line
-                or using the multi-line mode when typing in a live LLDB debug session.
-                Below the text in bold is user entered:
-            <p>
-            <code>
-                (lldb) <b>commands regex f</b><br>
-                Enter regular expressions in the form 's/<regex>/<subst>/' and terminate with an empty line:<br>
-                <b>s/^([0-9]+)[[:space:]]*$/frame select %1/<br>
-                s/^([+-][0-9]+)[[:space:]]*$/frame select --relative=%1/<br>
-                s/^[[:space:]]*$/finish/</b><br>
-                (lldb) <b>f</b><br>
-                finish<br>
-                ...<br>
-                (lldb) <b>f -1</b><br>
-                frame select --relative=-1<br>
-                ...<br>
-                (lldb) <b>f +1</b><br>
-                frame select --relative=+1<br>
-                ...<br>
-                (lldb) <b>f 12</b><br>
-                frame select 12<br>
-            </code>
-            </p>
-            <p>I hope you can see the possilbities in how you can customize your
-                command line experience in LLDB using these commands. You can add 
-                any regular expression commands to your <b>~/.lldbinit</b> file to
-                always have your regular expression commands defined in your debug 
-                sessions.
-  </div>
-  <div class="postfooter"></div>
\ No newline at end of file

Modified: lldb/trunk/www/sidebar.incl
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/www/sidebar.incl?rev=130014&r1=130013&r2=130014&view=diff
--- lldb/trunk/www/sidebar.incl (original)
+++ lldb/trunk/www/sidebar.incl Fri Apr 22 16:03:40 2011
@@ -4,7 +4,7 @@
     <h1 class="headerbar">Goals and Status</h1>
       <li><a href="index.html">About</a></li>
-      <li><a href="blog.html">Blog</a></li>
+      <li><a href="http://blog.llvm.org/search/label/LLDB">Blog</a></li>
       <li><a href="goals.html">Goals</a></li>
       <li><a href="features.html">Features</a></li>
       <li><a href="status.html">Status</a></li>

More information about the lldb-commits mailing list