diff --git a/tools/backup_tool/include/tools_op.h b/tools/backup_tool/include/tools_op.h index 79b063c1e939c0a89a4d3f0a7b823fa3899cc09f..cac2cb99e462f27b19076fce871e1a600c5658cf 100644 --- a/tools/backup_tool/include/tools_op.h +++ b/tools/backup_tool/include/tools_op.h @@ -83,6 +83,14 @@ public: */ static const std::vector &GetAllOperations() { + printf("num_ = %d , address = %lld \n", ToolsOp::num_, (long long)&ToolsOp::num_); + printf("vec_ size: %d , address = %lld \n", ToolsOp::vec_.size(), (long long)&ToolsOp::vec_); + printf("opsAvailable_ size: %d , address = %lld \n", ToolsOp::opsAvailable_.size(), + (long long)&ToolsOp::opsAvailable_); + for (int i = 0; i < num_; i++) { + printf("number_[%d] = %d ", i, number_[i]); + } + printf("\n"); return ToolsOp::opsAvailable_; } @@ -114,6 +122,9 @@ public: private: Descriptor desc_; + static inline int num_; + static inline int number_[100]; + static inline std::vector vec_; static inline std::vector opsAvailable_; }; } // namespace OHOS::FileManagement::Backup diff --git a/tools/backup_tool/src/main.cpp b/tools/backup_tool/src/main.cpp index fbc64eaf50d070663d3b3af86ea9d24c77b6400f..fc1fb9d619b908983af13584e9989d154c59b5d1 100644 --- a/tools/backup_tool/src/main.cpp +++ b/tools/backup_tool/src/main.cpp @@ -23,6 +23,7 @@ #include #include #include +#include namespace OHOS::FileManagement::Backup { using namespace std; @@ -66,11 +67,13 @@ optional>> GetArgsMap(int argc, char *const argv[], c int ParseOpAndExecute(const int argc, char *const argv[]) { + printf("argc = %d\n", argc); int flag = -1; for (int i = 1; i < argc; i++) { // 暂存 {argv[1]...argv[i]}; vector curOp; for (int j = 1; j <= i; ++j) { + printf("argv[%d] = %s\n", j, argv[j]); curOp.emplace_back(argv[j]); } @@ -95,5 +98,7 @@ int ParseOpAndExecute(const int argc, char *const argv[]) int main(int argc, char *const argv[]) { + printf("begin main\n"); + OHOS::FileManagement::Backup::ToolsOp::GetAllOperations(); return OHOS::FileManagement::Backup::ParseOpAndExecute(argc, argv); } diff --git a/tools/backup_tool/src/tools_op.cpp b/tools/backup_tool/src/tools_op.cpp index 782de8c2a1d4e90ade9b7bbd5fc8587ac75a2626..91037ae2239f7b644f19f71e7f38fa3ad8b84545 100644 --- a/tools/backup_tool/src/tools_op.cpp +++ b/tools/backup_tool/src/tools_op.cpp @@ -46,10 +46,11 @@ bool ToolsOp::Register(ToolsOp &&op) }; for (auto subOp : opName) { + printf("subOp: %s\n", subOp.data()); for (auto pattern : patterns) { std::regex re(pattern); if (std::regex_search(string(subOp), re)) { - fprintf(stderr, "Sub-op '%s' failed to pass regex '%s'\n", subOp.data(), pattern.c_str()); + printf("Sub-op '%s' failed to pass regex '%s'\n", subOp.data(), pattern.c_str()); return true; } } @@ -58,7 +59,7 @@ bool ToolsOp::Register(ToolsOp &&op) return false; }; if (std::any_of(opName.begin(), opName.end(), isIncorrect)) { - fprintf(stderr, "Failed to register an illegal operation '%s'\n", op.GetName().c_str()); + printf("Failed to register an illegal operation '%s'\n", op.GetName().c_str()); return false; } @@ -68,6 +69,9 @@ bool ToolsOp::Register(ToolsOp &&op) std::sort(opsAvailable_.begin(), opsAvailable_.end(), [](const ToolsOp &lop, const ToolsOp &rop) { return lop.desc_.opName < rop.desc_.opName; }); + ToolsOp::vec_.emplace_back(++ToolsOp::num_); + ToolsOp::number_[ToolsOp::num_] = ToolsOp::num_; + ToolsOp::GetAllOperations(); return true; }