[Pdbg] [PATCH v4 18/30] main: Avoid printing top level "proc" if no child is enabled

Amitay Isaacs amitay at ozlabs.org
Thu Oct 3 14:18:57 AEST 2019


Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
---
 src/main.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/src/main.c b/src/main.c
index f7f891a..09c236e 100644
--- a/src/main.c
+++ b/src/main.c
@@ -513,6 +513,21 @@ static bool parse_options(int argc, char *argv[])
 	return true;
 }
 
+static bool child_enabled(struct pdbg_target *target)
+{
+	struct pdbg_target *child;
+
+	pdbg_for_each_child_target(target, child) {
+		if (child_enabled(child))
+			return true;
+
+		if (pdbg_target_status(child) == PDBG_TARGET_ENABLED)
+			return true;
+	}
+
+	return false;
+}
+
 static void print_target(struct pdbg_target *target, int level)
 {
 	int i;
@@ -520,6 +535,9 @@ static void print_target(struct pdbg_target *target, int level)
 	enum pdbg_target_status status;
 	const char *classname;
 
+	if (level == 0 && !child_enabled(target))
+		return;
+
 	/* Does this target actually exist? */
 	status = pdbg_target_status(target);
 	if (status != PDBG_TARGET_ENABLED)
-- 
2.21.0



More information about the Pdbg mailing list