From a356e3ceb7f477c0ef4dba2ba55f0b95e5f27391 Mon Sep 17 00:00:00 2001 From: chenwei Date: Wed, 14 Jun 2023 11:30:26 +0800 Subject: [PATCH] =?UTF-8?q?OpenHarmonyV400R001=E9=83=A8=E5=88=86=E5=91=8A?= =?UTF-8?q?=E8=AD=A6=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: chenwei --- bin/src/bytrace_cmd.cpp | 102 ++++++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 47 deletions(-) diff --git a/bin/src/bytrace_cmd.cpp b/bin/src/bytrace_cmd.cpp index 1d38b31..49218c6 100644 --- a/bin/src/bytrace_cmd.cpp +++ b/bin/src/bytrace_cmd.cpp @@ -985,32 +985,8 @@ static void InitKernelSupportTags() InitHardwareSupportTags(); } -static void InitAllSupportTags() +static void InitOtherUserTags() { - // OHOS - g_tagMap["ability"] = { "ability", "Ability Manager", HITRACE_TAG_ABILITY_MANAGER, USER, {}}; - g_tagMap["ohos"] = { "ohos", "OpenHarmony", HITRACE_TAG_OHOS, USER, {}}; - g_tagMap["zcamera"] = { "zcamera", "OpenHarmony Camera Module", HITRACE_TAG_ZCAMERA, USER, {}}; - g_tagMap["zmedia"] = { "zmedia", "OpenHarmony Media Module", HITRACE_TAG_ZMEDIA, USER, {}}; - g_tagMap["zimage"] = { "zimage", "OpenHarmony Image Module", HITRACE_TAG_ZIMAGE, USER, {}}; - g_tagMap["zaudio"] = { "zaudio", "OpenHarmony Audio Module", HITRACE_TAG_ZAUDIO, USER, {}}; - g_tagMap["distributeddatamgr"] = { "distributeddatamgr", "Distributed Data Manager", - HITRACE_TAG_DISTRIBUTEDDATA, USER, {}}; - g_tagMap["mdfs"] = { "mdfs", "Mobile Distributed File System", HITRACE_TAG_MDFS, USER, {}}; - g_tagMap["graphic"] = { "graphic", "Graphic Module", HITRACE_TAG_GRAPHIC_AGP, USER, {}}; - g_tagMap["ace"] = { "ace", "ACE development framework", HITRACE_TAG_ACE, USER, {}}; - g_tagMap["notification"] = { "notification", "Notification Module", HITRACE_TAG_NOTIFICATION, USER, {}}; - g_tagMap["multimodalinput"] = { "multimodalinput", "Multimodal Input Module", - HITRACE_TAG_MULTIMODALINPUT, USER, {}}; - g_tagMap["misc"] = { "misc", "Misc Module", HITRACE_TAG_MISC, USER, {}}; - g_tagMap["sensors"] = { "sensors", "Sensors Module", HITRACE_TAG_SENSORS, USER, {}}; - g_tagMap["msdp"] = { "msdp", "Multimodal Sensor Data Platform", HITRACE_TAG_MSDP, USER, {}}; - g_tagMap["dsoftbus"] = { "dsoftbus", "Distributed Softbus", HITRACE_TAG_DSOFTBUS, USER, {}}; - g_tagMap["rpc"] = { "rpc", "RPC and IPC", HITRACE_TAG_RPC, USER, {}}; - g_tagMap["ark"] = { "ark", "ARK Module", HITRACE_TAG_ARK, USER, {}}; - g_tagMap["window"] = { "window", "Window Manager", HITRACE_TAG_WINDOW_MANAGER, USER, {}}; - g_tagMap["accessibility"] = { "accessibility", "Accessibility Manager", - HITRACE_TAG_ACCESSIBILITY_MANAGER, USER, {}}; g_tagMap["dhfwk"] = { "dhfwk", "Distributed Hardware FWK", HITRACE_TAG_DISTRIBUTED_HARDWARE_FWK, USER, {}}; g_tagMap["account"] = { "account", "Account Manager", HITRACE_TAG_ACCOUNT_MANAGER, USER, {}}; g_tagMap["daudio"] = { "daudio", "Distributed Audio", HITRACE_TAG_DISTRIBUTED_AUDIO, USER, {}}; @@ -1039,6 +1015,35 @@ static void InitAllSupportTags() g_tagMap["commonlibrary"] = {"commonlibrary", "Commonlibrary subsystem", HITRACE_TAG_COMMONLIBRARY, USER, {}}; g_tagMap["musl"] = {"musl", "Musl Module", HITRACE_TAG_MUSL, USER, {}}; g_tagMap["ffrt"] = {"ffrt", "Ffrt Tasks", HITRACE_TAG_FFRT, USER, {}}; +} + +static void InitAllSupportTags() +{ + // OHOS + g_tagMap["ability"] = { "ability", "Ability Manager", HITRACE_TAG_ABILITY_MANAGER, USER, {}}; + g_tagMap["ohos"] = { "ohos", "OpenHarmony", HITRACE_TAG_OHOS, USER, {}}; + g_tagMap["zcamera"] = { "zcamera", "OpenHarmony Camera Module", HITRACE_TAG_ZCAMERA, USER, {}}; + g_tagMap["zmedia"] = { "zmedia", "OpenHarmony Media Module", HITRACE_TAG_ZMEDIA, USER, {}}; + g_tagMap["zimage"] = { "zimage", "OpenHarmony Image Module", HITRACE_TAG_ZIMAGE, USER, {}}; + g_tagMap["zaudio"] = { "zaudio", "OpenHarmony Audio Module", HITRACE_TAG_ZAUDIO, USER, {}}; + g_tagMap["distributeddatamgr"] = { "distributeddatamgr", "Distributed Data Manager", + HITRACE_TAG_DISTRIBUTEDDATA, USER, {}}; + g_tagMap["mdfs"] = { "mdfs", "Mobile Distributed File System", HITRACE_TAG_MDFS, USER, {}}; + g_tagMap["graphic"] = { "graphic", "Graphic Module", HITRACE_TAG_GRAPHIC_AGP, USER, {}}; + g_tagMap["ace"] = { "ace", "ACE development framework", HITRACE_TAG_ACE, USER, {}}; + g_tagMap["notification"] = { "notification", "Notification Module", HITRACE_TAG_NOTIFICATION, USER, {}}; + g_tagMap["multimodalinput"] = { "multimodalinput", "Multimodal Input Module", + HITRACE_TAG_MULTIMODALINPUT, USER, {}}; + g_tagMap["misc"] = { "misc", "Misc Module", HITRACE_TAG_MISC, USER, {}}; + g_tagMap["sensors"] = { "sensors", "Sensors Module", HITRACE_TAG_SENSORS, USER, {}}; + g_tagMap["msdp"] = { "msdp", "Multimodal Sensor Data Platform", HITRACE_TAG_MSDP, USER, {}}; + g_tagMap["dsoftbus"] = { "dsoftbus", "Distributed Softbus", HITRACE_TAG_DSOFTBUS, USER, {}}; + g_tagMap["rpc"] = { "rpc", "RPC and IPC", HITRACE_TAG_RPC, USER, {}}; + g_tagMap["ark"] = { "ark", "ARK Module", HITRACE_TAG_ARK, USER, {}}; + g_tagMap["window"] = { "window", "Window Manager", HITRACE_TAG_WINDOW_MANAGER, USER, {}}; + g_tagMap["accessibility"] = { "accessibility", "Accessibility Manager", + HITRACE_TAG_ACCESSIBILITY_MANAGER, USER, {}}; + InitOtherUserTags(); // Kernel os InitKernelSupportTags(); @@ -1049,6 +1054,30 @@ static void InterruptExit(int signo) _exit(-1); } +static void DumpTrace(bool& isTrue) +{ + if (isTrue && g_traceDump) { + int outFd = STDOUT_FILENO; + if (g_outputFile.size() > 0) { + printf("write trace to %s\n", g_outputFile.c_str()); + string resolvedPath = CanonicalizeSpecPath(g_outputFile.c_str()); + outFd = open(resolvedPath.c_str(), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); + } + if (outFd == -1) { + fprintf(stderr, "Failed to open file '%s', err=%d", g_outputFile.c_str(), errno); + isTrue = false; + } else { + dprintf(outFd, "TRACE:\n"); + DumpTrace(outFd, TRACE_PATH); + if (outFd != STDOUT_FILENO) { + close(outFd); + outFd = -1; + } + } + ClearTrace(); + } +} + int main(int argc, char **argv) { setgid(SHELL_UID); @@ -1095,28 +1124,7 @@ int main(int argc, char **argv) std::this_thread::sleep_for(std::chrono::milliseconds(WAIT_MILLISECONDS)); isTrue = isTrue && StopTrace(); } - - if (isTrue && g_traceDump) { - int outFd = STDOUT_FILENO; - if (g_outputFile.size() > 0) { - printf("write trace to %s\n", g_outputFile.c_str()); - string resolvedPath = CanonicalizeSpecPath(g_outputFile.c_str()); - outFd = open(resolvedPath.c_str(), O_WRONLY | O_CREAT | O_TRUNC, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); - } - if (outFd == -1) { - fprintf(stderr, "Failed to open file '%s', err=%d", g_outputFile.c_str(), errno); - isTrue = false; - } else { - dprintf(outFd, "TRACE:\n"); - DumpTrace(outFd, TRACE_PATH); - if (outFd != STDOUT_FILENO) { - close(outFd); - outFd = -1; - } - } - ClearTrace(); - } - + DumpTrace(); if (g_traceStop) { // clear kernel setting including clock type after dump(MUST) and tracing_on is off. ClearKernelSpaceSettings();