From 3adbdb807e30fe55dc719254f32a5dbfdec2e3ab Mon Sep 17 00:00:00 2001 From: zyxzyx Date: Mon, 8 Sep 2025 14:57:55 +0800 Subject: [PATCH] handle connect fail scenario Signed-off-by: zyxzyx --- .../plugins/native_hook/src/hook_client.cpp | 21 +++++++++++-------- .../native_hook/src/hook_socket_client.cpp | 1 - 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/device/plugins/native_hook/src/hook_client.cpp b/device/plugins/native_hook/src/hook_client.cpp index c3b2c9916..bf947ee46 100644 --- a/device/plugins/native_hook/src/hook_client.cpp +++ b/device/plugins/native_hook/src/hook_client.cpp @@ -32,6 +32,7 @@ #include "musl_preinit_common.h" #include "parameter.h" #include "stack_writer.h" +#include "socket_context.h" #include "runtime_stack_range.h" #include "get_thread_id.h" #include "hook_client.h" @@ -285,15 +286,6 @@ void* MallocHookStart(void* disableHookCallback) return nullptr; } PROFILER_LOG_INFO(LOG_CORE, "MallocHookStart begin!"); - g_addrHandler = std::make_shared(); -#ifdef __aarch64__ - g_wholeAddrHandler = std::make_shared(); - g_midPartHandler = std::make_shared(); - g_midPartHandler->SetSuccessor(std::move(g_wholeAddrHandler)); - g_addrHandler->SetSuccessor(std::move(g_midPartHandler)); - g_wholeAddrHandler = nullptr; - g_midPartHandler = nullptr; -#endif g_mallocTimes = 0; g_hookClient.reset(); g_hookPid = GetRealPid(); @@ -306,6 +298,17 @@ void* MallocHookStart(void* disableHookCallback) g_hookClient = std::make_shared(g_hookPid.load(), &g_ClientConfig, &g_sampler, &targetedRange, &g_sharedMemCount, reinterpret_cast(disableHookCallback)); + if (g_hookClient->Connect(DEFAULT_UNIX_SOCKET_HOOK_FULL_PATH)) { + g_addrHandler = std::make_shared(); +#ifdef __aarch64__ + g_wholeAddrHandler = std::make_shared(); + g_midPartHandler = std::make_shared(); + g_midPartHandler->SetSuccessor(std::move(g_wholeAddrHandler)); + g_addrHandler->SetSuccessor(std::move(g_midPartHandler)); + g_wholeAddrHandler = nullptr; + g_midPartHandler = nullptr; +#endif + } } g_hookReady = true; return nullptr; diff --git a/device/plugins/native_hook/src/hook_socket_client.cpp b/device/plugins/native_hook/src/hook_socket_client.cpp index bbc7c3e03..ebef47a80 100644 --- a/device/plugins/native_hook/src/hook_socket_client.cpp +++ b/device/plugins/native_hook/src/hook_socket_client.cpp @@ -91,7 +91,6 @@ HookSocketClient::HookSocketClient(int pid, ClientConfig *config, Sampling *samp stackWriterList_.reserve(sharedMemCount); unixSocketClient_ = nullptr; serviceName_ = "HookService"; - Connect(DEFAULT_UNIX_SOCKET_HOOK_FULL_PATH); } HookSocketClient::~HookSocketClient() -- Gitee