summaryrefslogtreecommitdiff
path: root/cmds/lshal/DebugCommand.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2018-01-18 14:38:07 -0800
committer Steven Moreland <smoreland@google.com> 2018-01-18 14:39:33 -0800
commit5f328892a84418825bbfb5a2c074fc1a13e4eb7a (patch)
tree6d5ac5946fe3ba3d7edccee4993277843dce8f9e /cmds/lshal/DebugCommand.cpp
parent1aafb843c86bd930f777c1581b34ab1ef464de08 (diff)
Add 'exclude parent' option to debug.
We could add this to list in the future if it seems useful. This allows someone to call debug on all registered hal instances without dumping subclasses multiple times. Bug: 72123369 Test: w/ bugreport using this and manual Change-Id: Ib201194a9f81ae1aded7105d123ac6399c847494
Diffstat (limited to 'cmds/lshal/DebugCommand.cpp')
-rw-r--r--cmds/lshal/DebugCommand.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/cmds/lshal/DebugCommand.cpp b/cmds/lshal/DebugCommand.cpp
index f371320bd0..dd8812d5bf 100644
--- a/cmds/lshal/DebugCommand.cpp
+++ b/cmds/lshal/DebugCommand.cpp
@@ -35,6 +35,14 @@ Status DebugCommand::parseArgs(const Arg &arg) {
if (optind >= arg.argc) {
return USAGE;
}
+
+ // Optargs cannnot be used because the flag should not be considered set
+ // if it should really be contained in mOptions.
+ if (std::string(arg.argv[optind]) == "-E") {
+ mExcludesParentInstances = true;
+ optind++;
+ }
+
mInterfaceName = arg.argv[optind];
++optind;
for (; optind < arg.argc; ++optind) {
@@ -59,6 +67,7 @@ Status DebugCommand::main(const Arg &arg) {
return mLshal.emitDebugInfo(
pair.first, pair.second.empty() ? "default" : pair.second, mOptions,
+ mExcludesParentInstances,
mLshal.out().buf(),
mLshal.err());
}
@@ -67,8 +76,9 @@ void DebugCommand::usage() const {
static const std::string debug =
"debug:\n"
- " lshal debug <interface> [options [options [...]]] \n"
+ " lshal debug [-E] <interface> [options [options [...]]] \n"
" Print debug information of a specified interface.\n"
+ " -E: excludes debug output if HAL is actually a subclass.\n"
" <inteface>: Format is `android.hardware.foo@1.0::IFoo/default`.\n"
" If instance name is missing `default` is used.\n"
" options: space separated options to IBase::debug.\n";