mirror of
https://github.com/intel/llvm.git
synced 2026-01-17 14:48:27 +08:00
Refine the 'watchpoint set' command to now require either the '-v' option (for watching of a variable) or
the '-e' option (for watching of an address) to be present. Update some existing test cases with the required option and add some more test cases. Since the '-v' option takes <variable-name> and the '-e' option takes <expr> as the command arg, the existing infrastructure for generating the option usage can produce confusing help message, like: watchpoint set -e [-w <watch-type>] [-x <byte-size>] <variable-name | expr> watchpoint set -v [-w <watch-type>] [-x <byte-size>] <variable-name | expr> The solution adopted is to provide an extra member field to the struct CommandArgumentData called (uint32_t)arg_opt_set_association, whose purpose is to link this particular argument data with some option set(s). Also modify the signature of CommandObject::GetFormattedCommandArguments() to: GetFormattedCommandArguments (Stream &str, uint32_t opt_set_mask = LLDB_OPT_SET_ALL) it now takes an additional opt_set_mask which can be used to generate a filtered formatted command args for help message. Options::GenerateOptionUsage() impl is modified to call the GetFormattedCommandArguments() appropriately. So that the help message now looks like: watchpoint set -e [-w <watch-type>] [-x <byte-size>] <expr> watchpoint set -v [-w <watch-type>] [-x <byte-size>] <variable-name> rdar://problem/10703256 llvm-svn: 150032
This commit is contained in:
@@ -437,6 +437,10 @@ Options::GenerateOptionUsage
|
||||
strm.Printf ("\n");
|
||||
strm.Indent (name);
|
||||
|
||||
// Different option sets may require different args.
|
||||
StreamString args_str;
|
||||
cmd->GetFormattedCommandArguments(args_str, opt_set_mask);
|
||||
|
||||
// First go through and print all options that take no arguments as
|
||||
// a single string. If a command has "-a" "-b" and "-c", this will show
|
||||
// up as [-abc]
|
||||
@@ -556,12 +560,12 @@ Options::GenerateOptionUsage
|
||||
}
|
||||
}
|
||||
|
||||
if (arguments_str.GetSize() > 0)
|
||||
if (args_str.GetSize() > 0)
|
||||
{
|
||||
if (cmd->WantsRawCommandString())
|
||||
strm.Printf(" --");
|
||||
|
||||
strm.Printf (" %s", arguments_str.GetData());
|
||||
strm.Printf (" %s", args_str.GetData());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user