[Lldb-commits] [PATCH] D15582: Improve error handling for `f s #`

Adrian McCarthy via lldb-commits lldb-commits at lists.llvm.org
Wed Dec 16 10:53:51 PST 2015


amccarth created this revision.
amccarth added reviewers: emaste, jasonmolenda.
amccarth added a subscriber: lldb-commits.

When there were too many arguments given for the `frame select` command, the error message wasn't particularly helpful and then lldb would try to select frame -1, which resulted in an additional confusing error message.

This happened when the user expects `f s 1` to be a short form of `frame select 1`, but the `f` itself is an alias for `frame select`, so the `s` is extraneous.

The new output should make it easier for the user to understand what went wrong:

(lldb) f s 1
error: too many arguments; expect frame-index, saw 's'.

Command Options Usage:
  frame select [-r <offset>] [<frame-index>]

       -r <offset> ( --relative <offset> )
            A relative frame index offset from the current frame index.

http://reviews.llvm.org/D15582

Files:
  packages/Python/lldbsuite/test/functionalities/abbreviation/TestCommonShortSpellings.py
  source/Commands/CommandObjectFrame.cpp

Index: source/Commands/CommandObjectFrame.cpp
===================================================================
--- source/Commands/CommandObjectFrame.cpp
+++ source/Commands/CommandObjectFrame.cpp
@@ -262,8 +262,10 @@
             }
             else
             {
-                result.AppendError ("invalid arguments.\n");
+                result.AppendErrorWithFormat ("too many arguments; expected frame-index, saw '%s'.\n",
+                                              command.GetArgumentAtIndex(0));
                 m_options.GenerateOptionUsage (result.GetErrorStream(), this);
+                return false;
             }
         }
 
Index: packages/Python/lldbsuite/test/functionalities/abbreviation/TestCommonShortSpellings.py
===================================================================
--- packages/Python/lldbsuite/test/functionalities/abbreviation/TestCommonShortSpellings.py
+++ packages/Python/lldbsuite/test/functionalities/abbreviation/TestCommonShortSpellings.py
@@ -29,6 +29,7 @@
             ('dis', 'disassemble'),
             ('ta st a', 'target stop-hook add'),
             ('fr v', 'frame variable'),
+            ('f 1', 'frame select 1'),
             ('ta st li', 'target stop-hook list'),
         ]
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D15582.43033.patch
Type: text/x-patch
Size: 1251 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20151216/43baafe5/attachment-0001.bin>


More information about the lldb-commits mailing list