Loading cmds/statsd/src/StatsService.cpp +16 −4 Original line number Diff line number Diff line Loading @@ -284,12 +284,13 @@ void StatsService::print_cmd_help(FILE* out) { fprintf(out, "\n *Note: If both UID and NAME are omitted then all configs will\n"); fprintf(out, "\n be removed from memory and disk!\n"); fprintf(out, "\n"); fprintf(out, "usage: adb shell cmd stats dump-report [UID] NAME\n"); fprintf(out, "usage: adb shell cmd stats dump-report [UID] NAME [--proto]\n"); fprintf(out, " Dump all metric data for a configuration.\n"); fprintf(out, " UID The uid of the configuration. It is only possible to pass\n"); fprintf(out, " the UID parameter on eng builds. If UID is omitted the\n"); fprintf(out, " calling uid is used.\n"); fprintf(out, " NAME The name of the configuration\n"); fprintf(out, " --proto Print proto binary.\n"); fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, "usage: adb shell cmd stats send-broadcast [UID] NAME\n"); Loading Loading @@ -427,10 +428,15 @@ status_t StatsService::cmd_config(FILE* in, FILE* out, FILE* err, Vector<String8 status_t StatsService::cmd_dump_report(FILE* out, FILE* err, const Vector<String8>& args) { if (mProcessor != nullptr) { const int argCount = args.size(); int argCount = args.size(); bool good = false; bool proto = false; int uid; string name; if (!std::strcmp("--proto", args[argCount-1].c_str())) { proto = true; argCount -= 1; } if (argCount == 2) { // Automatically pick the UID uid = IPCThreadState::self()->getCallingUid(); Loading Loading @@ -460,8 +466,14 @@ status_t StatsService::cmd_dump_report(FILE* out, FILE* err, const Vector<String vector<uint8_t> data; mProcessor->onDumpReport(ConfigKey(uid, name), &data); // TODO: print the returned StatsLogReport to file instead of printing to logcat. if (proto) { for (size_t i = 0; i < data.size(); i ++) { fprintf(out, "%c", data[i]); } } else { fprintf(out, "Dump report for Config [%d,%s]\n", uid, name.c_str()); fprintf(out, "See the StatsLogReport in logcat...\n"); } return android::OK; } else { // If arg parsing failed, print the help text and return an error. Loading Loading
cmds/statsd/src/StatsService.cpp +16 −4 Original line number Diff line number Diff line Loading @@ -284,12 +284,13 @@ void StatsService::print_cmd_help(FILE* out) { fprintf(out, "\n *Note: If both UID and NAME are omitted then all configs will\n"); fprintf(out, "\n be removed from memory and disk!\n"); fprintf(out, "\n"); fprintf(out, "usage: adb shell cmd stats dump-report [UID] NAME\n"); fprintf(out, "usage: adb shell cmd stats dump-report [UID] NAME [--proto]\n"); fprintf(out, " Dump all metric data for a configuration.\n"); fprintf(out, " UID The uid of the configuration. It is only possible to pass\n"); fprintf(out, " the UID parameter on eng builds. If UID is omitted the\n"); fprintf(out, " calling uid is used.\n"); fprintf(out, " NAME The name of the configuration\n"); fprintf(out, " --proto Print proto binary.\n"); fprintf(out, "\n"); fprintf(out, "\n"); fprintf(out, "usage: adb shell cmd stats send-broadcast [UID] NAME\n"); Loading Loading @@ -427,10 +428,15 @@ status_t StatsService::cmd_config(FILE* in, FILE* out, FILE* err, Vector<String8 status_t StatsService::cmd_dump_report(FILE* out, FILE* err, const Vector<String8>& args) { if (mProcessor != nullptr) { const int argCount = args.size(); int argCount = args.size(); bool good = false; bool proto = false; int uid; string name; if (!std::strcmp("--proto", args[argCount-1].c_str())) { proto = true; argCount -= 1; } if (argCount == 2) { // Automatically pick the UID uid = IPCThreadState::self()->getCallingUid(); Loading Loading @@ -460,8 +466,14 @@ status_t StatsService::cmd_dump_report(FILE* out, FILE* err, const Vector<String vector<uint8_t> data; mProcessor->onDumpReport(ConfigKey(uid, name), &data); // TODO: print the returned StatsLogReport to file instead of printing to logcat. if (proto) { for (size_t i = 0; i < data.size(); i ++) { fprintf(out, "%c", data[i]); } } else { fprintf(out, "Dump report for Config [%d,%s]\n", uid, name.c_str()); fprintf(out, "See the StatsLogReport in logcat...\n"); } return android::OK; } else { // If arg parsing failed, print the help text and return an error. Loading