mirror of
https://github.com/apple/swift.git
synced 2026-03-04 18:24:35 +01:00
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
//===--- Runtime.h - Swift runtime imports ----------------------*- C++ -*-===//
|
|
//
|
|
// This source file is part of the Swift.org open source project
|
|
//
|
|
// Copyright (c) 2023 Apple Inc. and the Swift project authors
|
|
// Licensed under Apache License v2.0 with Runtime Library Exception
|
|
//
|
|
// See https://swift.org/LICENSE.txt for license information
|
|
// See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Things to drag in from the Swift runtime.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef SWIFT_BACKTRACING_RUNTIME_H
|
|
#define SWIFT_BACKTRACING_RUNTIME_H
|
|
|
|
#include <stdbool.h>
|
|
#include <stdlib.h>
|
|
|
|
#include "swift/Runtime/CrashInfo.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Can't import swift/Runtime/Debug.h because it assumes C++
|
|
void swift_reportWarning(uint32_t flags, const char *message);
|
|
|
|
// Returns true if the given function is a thunk function
|
|
bool _swift_backtrace_isThunkFunction(const char *rawName);
|
|
|
|
// Demangle the given raw name (supports Swift and C++)
|
|
char *_swift_backtrace_demangle(const char *rawName,
|
|
size_t rawNameLength,
|
|
char *outputBuffer,
|
|
size_t *outputBufferSize);
|
|
|
|
// Demangle the given Swift mangled identifier.
|
|
//
|
|
// An output buffer must be passed into which the demangled string will be written.
|
|
//
|
|
// The demangled result string is NOT null-terminated.
|
|
// The demangled string length is indicated through the outputBufferSize parameter.
|
|
//
|
|
// If the demangled result is truncated, the returned number will be greater than the
|
|
// initialized count written into the outputBufferSize.
|
|
//
|
|
// Introduced in Swift 6.3.
|
|
size_t _swift_runtime_demangle(
|
|
const char *rawName, size_t rawNameLength,
|
|
char *outputBuffer, size_t *outputBufferSize,
|
|
size_t flags
|
|
);
|
|
|
|
// Demangle the given Swift mangled identifier.
|
|
// This function always allocates a new buffer for the result to be returned.
|
|
|
|
// The demangled result string is NOT null-terminated.
|
|
// The demangled string length is indicated through the outputBufferSize parameter.
|
|
//
|
|
// Introduced in Swift 6.3.
|
|
char *_swift_runtime_demangle_allocate(
|
|
const char *rawName, size_t rawNameLength,
|
|
size_t *outputBufferSize,
|
|
size_t flags
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // SWIFT_BACKTRACING_RUNTIME_H
|