Files
rk35xx-android14/external/cronet/base/debug/debugger_fuchsia.cc
T
hmz007 36ed224bac Rockchip Anroid14_SDK 20240628-rkr5 (2556df1a)
Signed-off-by: hmz007 <hmz007@gmail.com>
Change-Id: Ib87fdbe7a0be7dc961af3500fe9ea4589a127f9f
2024-10-29 18:12:02 +08:00

44 lines
1.3 KiB
C++

// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/debug/debugger.h"
#include <lib/zx/process.h>
#include <stdlib.h>
#include <unistd.h>
#include <zircon/process.h>
#include <zircon/syscalls.h>
#include "base/debug/alias.h"
namespace base {
namespace debug {
bool BeingDebugged() {
zx_info_process_t info = {};
// Ignore failures. The 0-initialization above will result in "false" for
// error cases.
zx::process::self()->get_info(ZX_INFO_PROCESS, &info, sizeof(info),
nullptr, nullptr);
return (info.flags & ZX_INFO_PROCESS_FLAG_DEBUGGER_ATTACHED) != 0;
}
void BreakDebuggerAsyncSafe() {
// NOTE: This code MUST be async-signal safe (it's used by in-process
// stack dumping signal handler). NO malloc or stdio is allowed here.
// Linker's ICF feature may merge this function with other functions with the
// same definition (e.g. any function whose sole job is to call abort()) and
// it may confuse the crash report processing system. http://crbug.com/508489
static int static_variable_to_make_this_function_unique = 0;
Alias(&static_variable_to_make_this_function_unique);
abort();
}
void VerifyDebugger() {}
} // namespace debug
} // namespace base