atrace: read package names from multiple sysprops
bug: 28200530
Change-Id: I4597a84f4fb16098b0e57684cde5e57c1f41eed5
diff --git a/libcutils/trace-dev.c b/libcutils/trace-dev.c
index 5df1c5a..778e4f0 100644
--- a/libcutils/trace-dev.c
+++ b/libcutils/trace-dev.c
@@ -66,24 +66,17 @@
// values listed in the app_cmdlines property.
static bool atrace_is_cmdline_match(const char* cmdline)
{
+ int count = property_get_int32("debug.atrace.app_number", 0);
+
+ char buf[PROPERTY_KEY_MAX];
char value[PROPERTY_VALUE_MAX];
- char* start = value;
- property_get("debug.atrace.app_cmdlines", value, "");
-
- while (start != NULL) {
- char* end = strchr(start, ',');
-
- if (end != NULL) {
- *end = '\0';
- end++;
- }
-
- if (strcmp(cmdline, start) == 0) {
+ for (int i = 0; i < count; i++) {
+ snprintf(buf, sizeof(buf), "debug.atrace.app_%d", i);
+ property_get(buf, value, "");
+ if (strcmp(value, cmdline) == 0) {
return true;
}
-
- start = end;
}
return false;