This document is for a version of USD that is under development. See this page for the current release.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
debugger.h
Go to the documentation of this file.
1//
2// Copyright 2016 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7#ifndef PXR_BASE_ARCH_DEBUGGER_H
8#define PXR_BASE_ARCH_DEBUGGER_H
9
12
13#include "pxr/pxr.h"
14#include "pxr/base/arch/api.h"
16
17PXR_NAMESPACE_OPEN_SCOPE
18
41ARCH_API
43
51ARCH_API
52void ArchDebuggerWait(bool wait);
53
63ARCH_API
65
69ARCH_API
71
76[[noreturn]]
77ARCH_API
78void ArchAbort(bool logging = true);
79
86#if defined(ARCH_COMPILER_GCC) || defined(ARCH_COMPILER_CLANG)
87#define ARCH_DEBUGGER_TRAP do { ArchDebuggerTrap(); asm(""); } while (0)
88#else
89#define ARCH_DEBUGGER_TRAP do { ArchDebuggerTrap(); } while (0)
90#endif
91
92PXR_NAMESPACE_CLOSE_SCOPE
93
94#endif // PXR_BASE_ARCH_DEBUGGER_H
Define function attributes.
#define ARCH_NOINLINE
Macro used to indicate that a function should never be inlined.
Definition: attributes.h:58
ARCH_API void ArchDebuggerTrap() ARCH_NOINLINE
Stop in a debugger.
ARCH_API void ArchAbort(bool logging=true)
Abort.
ARCH_API bool ArchDebuggerIsAttached() ARCH_NOINLINE
Test if a debugger is attached.
ARCH_API bool ArchDebuggerAttach() ARCH_NOINLINE
Attach a debugger.
ARCH_API void ArchDebuggerWait(bool wait)
Cause debug traps to wait for the debugger or not.