diff --git a/BUILD.gn b/BUILD.gn index 120bf836356f9d178a1b0aa963ada608bfbe1d5f..1c732cc6f44713262c3e955ecfd5af4726e5dadf 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -236,7 +236,7 @@ config("toolchain_test_config") { visibility = [ "./inspector/test/*", "./test/fuzztest/*", - "./tooling/test/*", + "./tooling/dynamic/test/*", "./websocket/test/*", ] @@ -253,9 +253,10 @@ group("ark_toolchain_packages") { "./inspector:ark_debugger", "./inspector:connectserver_debugger", "./tooling:libark_ecma_debugger", - "./tooling/client:libark_client", - "./tooling/client/ark_cli:arkdb", - "./tooling/client/ark_multi:ark_multi", + "./tooling:libarkinspector_plus", + "./tooling/dynamic/client:libark_client", + "./tooling/dynamic/client/ark_cli:arkdb", + "./tooling/dynamic/client/ark_multi:ark_multi", ] } @@ -264,7 +265,7 @@ group("ark_toolchain_unittest") { deps = [] deps += [ "./inspector/test:unittest", - "./tooling/test:unittest", + "./tooling/dynamic/test:unittest", "./websocket/test:unittest", ] if (is_ohos && is_standard_system) { @@ -279,7 +280,7 @@ group("ark_toolchain_host_unittest") { # js unittest deps += [ "./inspector/test:host_unittest", - "./tooling/test:host_unittest", + "./tooling/dynamic/test:host_unittest", "./websocket/test:host_unittest", ] } diff --git a/inspector/BUILD.gn b/inspector/BUILD.gn index 607bd80a4bbab55649a3bab7053410ad5b742ba4..220a77dd6f01538c473710481e8185cf6faff980 100644 --- a/inspector/BUILD.gn +++ b/inspector/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2022-2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -34,6 +34,7 @@ ohos_source_set("ark_debugger_static") { sources = [ "../common/log_wrapper.cpp", "inspector.cpp", + "init_static.cpp", "library_loader.cpp", "ws_server.cpp", ] @@ -99,7 +100,7 @@ ohos_source_set("connectserver_debugger_static") { deps = [ "../websocket:libwebsocket_server" ] sources = [ "../common/log_wrapper.cpp", - "../tooling/base/pt_json.cpp", + "../tooling/dynamic/base/pt_json.cpp", "connect_inspector.cpp", "connect_server.cpp", ] diff --git a/inspector/connect_inspector.cpp b/inspector/connect_inspector.cpp index a51f4973e234a487ac781fa17218efe6fddb4254..393c5158bb42548d959b0fdfd37e8415a56cd926 100644 --- a/inspector/connect_inspector.cpp +++ b/inspector/connect_inspector.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2023-2024 Huawei Device Co., Ltd. + * Copyright (c) 2023-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -18,7 +18,7 @@ #include #include "common/log_wrapper.h" -#include "tooling/base/pt_json.h" +#include "tooling/dynamic/base/pt_json.h" #include "ws_server.h" namespace OHOS::ArkCompiler::Toolchain { diff --git a/inspector/init_static.cpp b/inspector/init_static.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a57b535109c3734e6d5ee3ea16ced205e6a7c0c6 --- /dev/null +++ b/inspector/init_static.cpp @@ -0,0 +1,137 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +#include +#include + +#include "library_loader.h" +#include "common/log_wrapper.h" +#include "init_static.h" + +#if defined(UNIX_PLATFORM) +#include +#elif defined(WINDOWS_PLATFORM) +#include +#ifdef ERROR +#undef ERROR +#endif +#else +#error "Unsupported platform" +#endif + +namespace OHOS::ArkCompiler::Toolchain { + + +using InitializeInspectorFunc = void(*)(std::shared_ptr, bool); +using HandleMessageFunc = void(*)(std::string&&); +using StopInspectorFunc = void(*)(); +using WaitForDebuggerFunc = void(*)(); +using StartDebuggerFunc = void(*)(uint32_t, bool); +using StopDebuggerFunc = void(*)(); + +static void* g_debuggerHandle = nullptr; + +static InitializeInspectorFunc g_initializeInspectorForStatic = nullptr; +static HandleMessageFunc g_handleMessageForStatic = nullptr; +static StopInspectorFunc g_stopInspectorForStatic = nullptr; +static WaitForDebuggerFunc g_waitForDebuggerForStatic = nullptr; +static StartDebuggerFunc g_startDebuggerForStatic = nullptr; +static StopDebuggerFunc g_stopDebuggerForStatic = nullptr; + +bool InitializeArkFunctionsForStatic() +{ + if (g_debuggerHandle) { + return true; + } + g_debuggerHandle = Load("libarkinspector.so"); + if (g_debuggerHandle == nullptr) { + return false; + } + g_initializeInspectorForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "InitializeInspector")); + if (g_initializeInspectorForStatic == nullptr) { + return false; + } + g_startDebuggerForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "StartDebugger")); + if (g_startDebuggerForStatic == nullptr) { + return false; + } + g_stopDebuggerForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "StopDebugger")); + if (g_stopDebuggerForStatic == nullptr) { + return false; + } + g_handleMessageForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "HandleMessage")); + if (g_handleMessageForStatic == nullptr) { + return false; + } + g_stopInspectorForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "StopInspector")); + if (g_stopInspectorForStatic == nullptr) { + return false; + } + g_waitForDebuggerForStatic = reinterpret_cast( + ResolveSymbol(g_debuggerHandle, "WaitForDebugger")); + if (g_waitForDebuggerForStatic == nullptr) { + return false; + } + return true; +} + +void HandleMessage(std::string&& message) +{ + g_handleMessageForStatic(std::move(message)); +} + +int StopDebuggerForStatic() +{ + g_stopInspectorForStatic(); + return 0; +} + +bool StartDebuggerForStatic(std::shared_ptr endpoint, bool breakOnStart) +{ + if (endpoint == nullptr) { + LOGE("StartDebuggerForStatic Endpoint == nullptr"); + } + g_initializeInspectorForStatic(endpoint, breakOnStart); + return true; +} +void WaitForDebuggerForStatic() +{ + g_waitForDebuggerForStatic(); +} + +int StartDebuggerInitForStatic(uint32_t port, bool breakOnStart) +{ + if (!InitializeArkFunctionsForStatic()) { + LOGE("StartDebuggerInitForStatic Error"); + } + g_startDebuggerForStatic(port, breakOnStart); + return 1; +} + +int StopDebuggerInitForStatic() +{ + if (!InitializeArkFunctionsForStatic()) { + LOGE("StopDebuggerInitForStatic Error"); + } + g_stopDebuggerForStatic(); + return 1; +} +} diff --git a/inspector/init_static.h b/inspector/init_static.h new file mode 100644 index 0000000000000000000000000000000000000000..0d8e6ee5d3e1668d6e5765ed2bd7825b4067ca50 --- /dev/null +++ b/inspector/init_static.h @@ -0,0 +1,39 @@ +/** + * Copyright (c) 2025 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ECMASCRIPT_TOOLING_INIT_STATIC_H +#define ECMASCRIPT_TOOLING_INIT_STATIC_H + +#include +#include +#include "common/log_wrapper.h" + +namespace OHOS::ArkCompiler::Toolchain { +bool InitializeArkFunctionsForStatic(); + +void HandleMessage(std::string &&message); + +int StopDebuggerForStatic(); + +bool StartDebuggerForStatic(std::shared_ptr endpoint, bool breakOnStart); + +void WaitForDebuggerForStatic(); + +int StartDebuggerInitForStatic(uint32_t port, bool breakOnStart); + +int StopDebuggerInitForStatic(); +} + +#endif //ECMASCRIPT_TOOLING_INIT_STATIC_H \ No newline at end of file diff --git a/inspector/inspector.cpp b/inspector/inspector.cpp index 755ac39200168f27e23d189f921dd5a03230c79e..0ef5bba2eade8136b374237f714599cd4f6761a8 100644 --- a/inspector/inspector.cpp +++ b/inspector/inspector.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -14,6 +14,7 @@ */ #include "inspector.h" +#include "init_static.h" #include #if defined(OHOS_PLATFORM) @@ -28,7 +29,7 @@ #include "library_loader.h" #if defined(IOS_PLATFORM) -#include "tooling/debugger_service.h" +#include "tooling/dynamic/debugger_service.h" #endif #if defined(ENABLE_FFRT_INTERFACES) @@ -81,7 +82,33 @@ constexpr char ARK_DEBUGGER_SHARED_LIB[] = "libark_tooling.so"; #endif #endif -void* HandleClient(void* const server) +struct ClientArgs { + void* server; + bool isHybrid; +}; + +void* HandleHybridClient(void* arg) +{ + ClientArgs* args = static_cast(arg); + auto server = args->server; + LOGI("HandleClient"); + if (server == nullptr) { + LOGE("HandleClient server nullptr"); + return nullptr; + } + +#if defined(IOS_PLATFORM) || defined(MAC_PLATFORM) + pthread_setname_np("OS_DebugThread"); +#else + pthread_setname_np(pthread_self(), "OS_DebugThread"); +#endif + + static_cast(server)->RunServer(args->isHybrid); + delete args; + return nullptr; +} + +void* HandleNormalClient(void* const server) { LOGI("HandleClient"); if (server == nullptr) { @@ -149,7 +176,9 @@ void ResetServiceLocked(void *vm, bool isCloseHandle) } bool InitializeInspector( - void* vm, const DebuggerPostTask& debuggerPostTask, const DebugInfo& debugInfo, int tidForSocketPair = 0) + void* vm, const DebuggerPostTask& debuggerPostTask, + const DebugInfo& debugInfo, + int tidForSocketPair = 0, bool isHybrid = false) { std::unique_lock lock(g_mutex); auto iter = g_inspectors.find(vm); @@ -166,14 +195,24 @@ bool InitializeInspector( newInspector->vm_ = vm; newInspector->debuggerPostTask_ = debuggerPostTask; newInspector->websocketServer_ = std::make_unique(debugInfo, - std::bind(&Inspector::OnMessage, newInspector, std::placeholders::_1)); + std::bind(&Inspector::OnMessage, newInspector, std::placeholders::_1, isHybrid)); pthread_t tid; - if (pthread_create(&tid, nullptr, &HandleClient, static_cast( - newInspector->websocketServer_.get())) != 0) { - LOGE("Create inspector thread failed"); - return false; + + auto server = static_cast(newInspector->websocketServer_.get()); + if (isHybrid) { + ClientArgs* args = new ClientArgs{server, isHybrid}; + if (pthread_create(&tid, nullptr, &HandleHybridClient, args)) { + LOGE("Create inspector thread failed"); + return false; + }; + } else { + if (pthread_create(&tid, nullptr, &HandleNormalClient, server)) { + LOGE("Create inspector thread failed"); + return false; + }; } + newInspector->websocketServer_->tid_ = tid; return true; @@ -273,8 +312,11 @@ bool InitializeArkFunctions() } // namespace -void Inspector::OnMessage(std::string&& msg) +void Inspector::OnMessage(std::string&& msg, bool isHybrid) { + if (isHybrid) { + HandleMessage(std::move(msg)); + } g_onMessage(vm_, std::move(msg)); // message will be processed soon if the debugger thread is in running or waiting status @@ -348,7 +390,7 @@ void *GetEcmaVM(int tid) return g_debuggerInfo[tid].first; } -bool InitializeDebuggerForSocketpair(void* vm) +bool InitializeDebuggerForSocketpair(void* vm, bool isHybrid) { #if !defined(IOS_PLATFORM) if (!LoadArkDebuggerLibrary()) { @@ -359,12 +401,18 @@ bool InitializeDebuggerForSocketpair(void* vm) LOGE("Initialize ark functions failed"); return false; } + if (isHybrid) { + if (!InitializeArkFunctionsForStatic()) { + LOGE("Initialize ark functions failed"); + return false; + }; + } g_initializeDebugger(vm, std::bind(&SendReply, vm, std::placeholders::_2)); return true; } // for ohos platform. -bool StartDebugForSocketpair(int tid, int socketfd) +bool StartDebugForSocketpair(int tid, int socketfd, bool isHybrid) { LOGI("StartDebugForSocketpair, tid = %{private}d, socketfd = %{private}d", tid, socketfd); void* vm = GetEcmaVM(tid); @@ -378,7 +426,7 @@ bool StartDebugForSocketpair(int tid, int socketfd) } const DebuggerPostTask &debuggerPostTask = GetDebuggerPostTask(tid); DebugInfo debugInfo = {socketfd}; - if (!InitializeInspector(vm, debuggerPostTask, debugInfo, tid)) { + if (!InitializeInspector(vm, debuggerPostTask, debugInfo, tid, isHybrid)) { LOGE("Initialize inspector failed"); return false; } @@ -425,7 +473,18 @@ void WaitForDebugger(void* vm) g_waitForDebugger(vm); } -void StopDebug(void* vm) + +int StartDebugger(uint32_t port, bool breakOnStart) +{ + return StartDebuggerInitForStatic(port, breakOnStart); +} + +int StopDebugger() +{ + return StopDebuggerInitForStatic(); +} + +void StopDebug(void* vm, bool isHybrid) { LOGI("StopDebug start, vm is %{private}p", vm); std::unique_lock lock(g_mutex); @@ -444,6 +503,9 @@ void StopDebug(void* vm) } ResetServiceLocked(vm, true); g_uninitializeDebugger(vm); + if (isHybrid) { + StopDebuggerForStatic(); + } LOGI("StopDebug end"); } diff --git a/inspector/inspector.h b/inspector/inspector.h index 9dc21e8cd7ad5d949ee64a8761cc93c2b8d0ede3..430dda768769095e5a7e48c2a89b1a15b10bd46c 100644 --- a/inspector/inspector.h +++ b/inspector/inspector.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021-2022 Huawei Device Co., Ltd. + * Copyright (c) 2021-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -35,16 +35,20 @@ extern "C" { bool StartDebug(const std::string& componentName, void* vm, bool isDebugMode, int32_t instanceId, const DebuggerPostTask& debuggerPostTask, int port); -bool StartDebugForSocketpair(int tid, int socketfd); +bool StartDebugForSocketpair(int tid, int socketfd, bool isHybrid = false); -bool InitializeDebuggerForSocketpair(void* vm); +bool InitializeDebuggerForSocketpair(void* vm, bool isHybrid = false); -void StopDebug(void* vm); +void StopDebug(void* vm, bool isHybrid = false); void StopOldDebug(int tid, const std::string& componentName); void WaitForDebugger(void* vm); +int StartDebugger(uint32_t port, bool breakOnStart); + +int StopDebugger(); + void StoreDebuggerInfo(int tid, void* vm, const DebuggerPostTask& debuggerPostTask); // The returned pointer must be released using free() after it is no longer needed. @@ -61,7 +65,7 @@ public: Inspector() = default; ~Inspector() = default; - void OnMessage(std::string&& msg); + void OnMessage(std::string&& msg, bool isHybrid = false); #if defined(OHOS_PLATFORM) static uint64_t GetThreadOrTaskId(); #endif // defined(OHOS_PLATFORM) diff --git a/inspector/ws_server.cpp b/inspector/ws_server.cpp index 744bdb5eda45322857d581b80e8fd97cfd245627..ffb7b9885581e74018a4181e7e1a5fd4f73e1e25 100644 --- a/inspector/ws_server.cpp +++ b/inspector/ws_server.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -14,6 +14,7 @@ */ #include "ws_server.h" +#include "init_static.h" #include @@ -30,7 +31,7 @@ WsServer::WsServer(const DebugInfo& debugInfo, const std::function lock(wsMutex_); @@ -66,6 +67,9 @@ void WsServer::RunServer() return; } } + if (isHybrid) { + StartDebuggerForStatic(webSocket_, true); + } #endif } ContinueRunserver(); diff --git a/inspector/ws_server.h b/inspector/ws_server.h index 47df2dc6740d808990f008d23c9734fe5d1554e9..f0f18d24e82e468634d11ff5ee95f893bbbfdd17 100644 --- a/inspector/ws_server.h +++ b/inspector/ws_server.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -39,7 +39,7 @@ class WsServer { public: WsServer(const DebugInfo& debugInfo, const std::function& onMessage); ~WsServer(); - void RunServer(); + void RunServer(bool isHybrid = false); void ContinueRunserver(); void StopServer(); void SendReply(const std::string& message) const; @@ -53,7 +53,7 @@ private: std::mutex wsMutex_; DebugInfo debugInfo_ {}; std::function wsOnMessage_ {}; - std::unique_ptr webSocket_ { nullptr }; + std::shared_ptr webSocket_ { nullptr }; }; } // namespace OHOS::ArkCompiler::Toolchain diff --git a/test/fuzztest/BUILD.gn b/test/fuzztest/BUILD.gn index e79944a8662c632ec9e7ca31ae89d4bcc4da13c8..465801086158a77d1d07f5e8873abe881ab2dd85 100644 --- a/test/fuzztest/BUILD.gn +++ b/test/fuzztest/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/test/fuzztest/agent/BUILD.gn b/test/fuzztest/agent/BUILD.gn index 6fe2f226bef9233af04ed68e927fc97716675adc..0f8ec604668a61e14a30bd7aa846fcd42fd9130b 100644 --- a/test/fuzztest/agent/BUILD.gn +++ b/test/fuzztest/agent/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/test/fuzztest/agent/heapprofiler/BUILD.gn b/test/fuzztest/agent/heapprofiler/BUILD.gn index dc7b2f7650526e7f92b70c27bb4ca87361e6ab45..22aab0b2f5b7bf9644b2544517afe9b38fa1d3e5 100644 --- a/test/fuzztest/agent/heapprofiler/BUILD.gn +++ b/test/fuzztest/agent/heapprofiler/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/BUILD.gn b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/BUILD.gn index 3e4c043a252c0d3bcc618b2aeacea24e18435f7c..a6b806ded8711437ba796362b79aa60e167842b3 100644 --- a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/BUILD.gn +++ b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Huawei Device Co., Ltd. +# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -27,7 +27,7 @@ ohos_fuzztest("HeapprofilerAddInspectedHeapObjectFuzzTest") { configs = [ "//arkcompiler/toolchain:toolchain_test_config" ] - deps = [ "../../../../../tooling:libark_ecma_debugger_set" ] + deps = [ "../../../../../tooling/dynamic:libark_ecma_debugger_set" ] # hiviewdfx libraries external_deps = hiviewdfx_ext_deps diff --git a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/corpus/init b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/corpus/init index b9a20c8eb6a74b442cec3b244a433adbfa9414a2..b690838e1c690033c883dc386dab2ee1a85bc208 100644 --- a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/corpus/init +++ b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/corpus/init @@ -1,4 +1,4 @@ -# Copyright (c) 2021 Huawei Device Co., Ltd. +# Copyright (c) 2025 Huawei Device Co., Ltd. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at diff --git a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.cpp b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.cpp index 30d5a75defa2a5b865baa7f6a145357ce49527ab..6ad21c619b30e9a5112790830f5987f14ec856fc 100644 --- a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.cpp +++ b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -16,7 +16,7 @@ #include "heapprofileraddinspectedheapobject_fuzzer.h" #include "ecmascript/napi/include/jsnapi.h" #include "agent/heapprofiler_impl.h" -#include "tooling/dispatcher.h" +#include "tooling/dynamic/dispatcher.h" using namespace panda; using namespace panda::ecmascript; diff --git a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.h b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.h index 4a56bcc5fa0dcc648d640c5ee3b036fff9838d42..0fe792cf34dd14081bb28b24ea123a9b78d36ef4 100644 --- a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.h +++ b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/heapprofileraddinspectedheapobject_fuzzer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/project.xml b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/project.xml index 6e8ad2cfde8f8bda4beb6cabbe7efd8bc3c54eec..66e1dcac475475fb101b6f8670ec699e6e9696aa 100644 --- a/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/project.xml +++ b/test/fuzztest/agent/heapprofiler/heapprofileraddinspectedheapobject_fuzzer/project.xml @@ -1,5 +1,5 @@ -