Lines Matching refs:traceExportOption

372 bool CheckFinal(char **argv, TraceExportOption &traceExportOption)
374 if (((traceExportOption.traceFilePath.empty() && traceExportOption.longTraceDir.empty()) ||
375 (!traceExportOption.interactiveState && traceExportOption.sqliteFilePath.empty())) &&
376 !traceExportOption.separateFile && traceExportOption.metricsIndex.empty() &&
377 traceExportOption.sqlOperatorFilePath.empty() && traceExportOption.outputFilePath.empty() &&
378 traceExportOption.dumpFileType == DumpFileType::UNKONW_TYPE) {
392 bool CheckAndSetSoFilesPath(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
395 traceExportOption.soFilesDir = std::string(argv[index]);
407 bool CheckAndSetMetrics(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
410 traceExportOption.metricsIndex = std::string(argv[index]);
413 bool CheckAndSetThreadNum(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
416 traceExportOption.parserThreadNum = std::stoi(argv[index]);
420 bool CheckAndSetSqlitePath(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
423 traceExportOption.sqliteFilePath = std::string(argv[index]);
426 bool CheckAndSetOutputFilePath(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
429 traceExportOption.outputFilePath = std::string(argv[index]);
432 bool CheckAndSetSqlQueryFilePath(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
435 traceExportOption.sqlOperatorFilePath = std::string(argv[index]);
438 bool CheckAndSetDumpFileType(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
444 traceExportOption.dumpFileType = DumpFileType::PERF_TYPE;
448 traceExportOption.dumpFileType = DumpFileType::NATIVE_HOOK_TYPE;
452 traceExportOption.dumpFileType = DumpFileType::EBPF_TYPE;
455 if (traceExportOption.dumpFileType == DumpFileType::UNKONW_TYPE) {
459 if (!traceExportOption.outputFilePath.empty()) {
460 auto strVec = SplitStringToVec(traceExportOption.traceFilePath, ".");
461 traceExportOption.outputFilePath = strVec.front() + "_ReadableText.txt";
465 bool CheckAndSetLongTraceDir(TraceExportOption &traceExportOption, int argc, char **argv, int &index)
468 traceExportOption.longTraceDir = std::string(argv[index]);
471 bool ParseOtherArgs(int argc, char **argv, TraceExportOption &traceExportOption, int &i)
477 traceExportOption.needClearLongTraceCache = false;
489 traceExportOption.separateFile = true;
492 TS_CHECK_TRUE_RET(CheckAndSetThreadNum(traceExportOption, argc, argv, i), false);
496 traceExportOption.closeMutiThread = true;
500 traceExportOption.exportMetaTable = false;
504 TS_CHECK_TRUE_RET(CheckAndSetMetrics(traceExportOption, argc, argv, i), false);
512 traceExportOption.traceFilePath = std::string(argv[i]);
516 bool ParseArgs(int argc, char **argv, TraceExportOption &traceExportOption)
521 TS_CHECK_TRUE_RET(CheckAndSetSqlitePath(traceExportOption, argc, argv, i), false);
525 traceExportOption.interactiveState = true;
529 TS_CHECK_TRUE_RET(CheckAndSetLongTraceDir(traceExportOption, argc, argv, i), false);
533 TS_CHECK_TRUE_RET(CheckAndSetDumpFileType(traceExportOption, argc, argv, i), false);
537 TS_CHECK_TRUE_RET(CheckAndSetSqlQueryFilePath(traceExportOption, argc, argv, i), false);
541 TS_CHECK_TRUE_RET(CheckAndSetOutputFilePath(traceExportOption, argc, argv, i), false);
545 TS_CHECK_TRUE_RET(CheckAndSetSoFilesPath(traceExportOption, argc, argv, i), false);
548 } else if (!ParseOtherArgs(argc, argv, traceExportOption, i)) {
552 return CheckFinal(argv, traceExportOption);
555 bool GetLongTraceFilePaths(const TraceExportOption &traceExportOption, std::map<int, std::string> &seqToFilePathMap)
558 auto strEscape = std::regex_replace(traceExportOption.longTraceDir, traceInvalidStr, "\\\\\\\\");
634 bool ParseLongTrace(TraceStreamerSelector &ts, const TraceExportOption &traceExportOption)
637 TS_CHECK_TRUE(!traceExportOption.sqliteFilePath.empty(), false, "sqliteFilePath is empty");
638 TS_CHECK_TRUE(GetLongTraceFilePaths(traceExportOption, seqToFilePathMap), false, "GetLongTraceFilePaths err!");
639 ts.CreatEmptyBatchDB(traceExportOption.sqliteFilePath);
647 if (!traceExportOption.needClearLongTraceCache) {
648 TS_CHECK_TRUE(ExportDatabase(ts, traceExportOption.sqliteFilePath) == 0, false, "ExportDatabase Err!");
651 if (!traceExportOption.needClearLongTraceCache) {
658 TS_CHECK_TRUE(LongTraceExportDatabase(ts, traceExportOption.sqliteFilePath), false,
662 ts.RevertTableName(traceExportOption.sqliteFilePath);
665 if (!traceExportOption.sqliteFilePath.empty()) {
666 ExportStatusToLog(traceExportOption.sqliteFilePath, GetAnalysisResult());
670 void ExportReadableText(TraceStreamerSelector &ts, const TraceExportOption &traceExportOption)
672 if (traceExportOption.dumpFileType == DumpFileType::PERF_TYPE) {
673 ts.ExportPerfReadableText(traceExportOption.outputFilePath);
674 } else if (traceExportOption.dumpFileType == DumpFileType::NATIVE_HOOK_TYPE) {
675 ts.ExportHookReadableText(traceExportOption.outputFilePath);
676 } else if (traceExportOption.dumpFileType == DumpFileType::EBPF_TYPE) {
677 ts.ExportEbpfReadableText(traceExportOption.outputFilePath);
680 bool CheckAndParseArgs(int argc, char **argv, TraceExportOption &traceExportOption)
686 int ret = ParseArgs(argc, argv, traceExportOption);
688 if (!traceExportOption.sqliteFilePath.empty()) {
689 ExportStatusToLog(traceExportOption.sqliteFilePath, GetAnalysisResult());
712 void Init(TraceStreamerSelector &ts, const TraceExportOption &traceExportOption)
714 ts.EnableMetaTable(traceExportOption.exportMetaTable);
715 ts.EnableFileSave(traceExportOption.separateFile);
716 if (traceExportOption.closeMutiThread) {
719 if (traceExportOption.parserThreadNum != INVALID_UINT8 && traceExportOption.parserThreadNum >= PARSER_THREAD_MIN &&
720 traceExportOption.parserThreadNum <= PARSER_THREAD_MAX) {
721 ts.GetTraceDataCache()->parserThreadNum_ = traceExportOption.parserThreadNum;
730 TraceExportOption traceExportOption;
731 TS_CHECK_TRUE_RET(CheckAndParseArgs(argc, argv, traceExportOption), 1);
733 Init(ts, traceExportOption);
735 if (!traceExportOption.longTraceDir.empty()) {
736 ParseLongTrace(ts, traceExportOption);
740 auto strEscape = std::regex_replace(traceExportOption.traceFilePath, traceInvalidStr, "\\\\\\\\");
742 if (!traceExportOption.sqliteFilePath.empty()) {
743 ExportStatusToLog(traceExportOption.sqliteFilePath, GetAnalysisResult());
748 if (!traceExportOption.soFilesDir.empty()) {
749 auto values = GetFilesNameFromDir(traceExportOption.soFilesDir);
750 ts.ReloadSymbolFiles(traceExportOption.soFilesDir, values);
753 if (traceExportOption.interactiveState) {
756 if (traceExportOption.dumpFileType != DumpFileType::UNKONW_TYPE) {
757 ExportReadableText(ts, traceExportOption);
759 if (!traceExportOption.sqliteFilePath.empty()) {
760 if (ExportDatabase(ts, traceExportOption.sqliteFilePath)) {
761 ExportStatusToLog(traceExportOption.sqliteFilePath, GetAnalysisResult());
764 ExportStatusToLog(traceExportOption.sqliteFilePath, GetAnalysisResult());
766 if (!traceExportOption.metricsIndex.empty()) {
772 ts.ParserAndPrintMetrics(traceExportOption.metricsIndex);
774 if (!traceExportOption.sqlOperatorFilePath.empty()) {
775 ts.ReadSqlFileAndPrintResult(traceExportOption.sqlOperatorFilePath);