mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-31 01:43:03 +08:00
c11d49db88
ARM64 supports storing pointer authentication codes in the upper bits of a pointer. This mask can be used by LLDB to mimic ptrauth_strip and strip the pointer authentication codes. To recover an address from pointer with an authentication code, `AND` this mask with the pointer. If the platform does not support pointer authentication, or the range of valid addressees for a pointer was unaccessible, this field will be 0 and should be ignored. Change-Id: Ie5cef90802dd1e892d456195ab8874223eac6a1b Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2773358 Commit-Queue: Justin Cohen <justincohen@chromium.org> Reviewed-by: Mark Mentovai <mark@chromium.org>
122 lines
3.7 KiB
C++
122 lines
3.7 KiB
C++
// Copyright 2021 The Crashpad Authors
|
|
//
|
|
// 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 CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_FORMAT_H_
|
|
#define CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_FORMAT_H_
|
|
|
|
#include <stdint.h>
|
|
|
|
namespace crashpad {
|
|
namespace internal {
|
|
|
|
// Define values for intermediate dump enum class IntermediateDumpKey. Use
|
|
// |INTERMEDIATE_DUMP_KEYS| so it is easier to print human readable keys in
|
|
// logs.
|
|
// clang-format off
|
|
#define INTERMEDIATE_DUMP_KEYS(TD) \
|
|
TD(kInvalid, 0) \
|
|
TD(kVersion, 1) \
|
|
TD(kMachException, 1000) \
|
|
TD(kCodes, 1001) \
|
|
TD(kException, 1002) \
|
|
TD(kFlavor, 1003) \
|
|
TD(kState, 1004) \
|
|
TD(kSignalException, 2000) \
|
|
TD(kSignalNumber, 2001) \
|
|
TD(kSignalCode, 2002) \
|
|
TD(kSignalAddress, 2003) \
|
|
TD(kNSException, 2500) \
|
|
TD(kModules, 3000) \
|
|
TD(kAddress, 3001) \
|
|
TD(kFileType, 3002) \
|
|
TD(kName, 3003) \
|
|
TD(kSize, 3004) \
|
|
TD(kDylibCurrentVersion, 3005) \
|
|
TD(kSourceVersion, 3006) \
|
|
TD(kTimestamp, 3007) \
|
|
TD(kUUID, 3008) \
|
|
TD(kAnnotationObjects, 3009) \
|
|
TD(kAnnotationsSimpleMap, 3010) \
|
|
TD(kAnnotationsVector, 3011) \
|
|
TD(kAnnotationType, 3012) \
|
|
TD(kAnnotationName, 3013) \
|
|
TD(kAnnotationValue, 3014) \
|
|
TD(kAnnotationsCrashInfo, 3015) \
|
|
TD(kAnnotationsCrashInfoMessage1, 3016) \
|
|
TD(kAnnotationsCrashInfoMessage2, 3017) \
|
|
TD(kAnnotationsDyldErrorString, 3018) \
|
|
TD(kProcessInfo, 4000) \
|
|
TD(kParentPID, 4001) \
|
|
TD(kPID, 4002) \
|
|
TD(kStartTime, 4003) \
|
|
TD(kSnapshotTime, 4004) \
|
|
TD(kTaskBasicInfo, 4005) \
|
|
TD(kTaskThreadTimes, 4006) \
|
|
TD(kSystemTime, 4007) \
|
|
TD(kUserTime, 4008) \
|
|
TD(kSystemInfo, 5000) \
|
|
TD(kCpuCount, 5001) \
|
|
TD(kCpuVendor, 5002) \
|
|
TD(kDaylightName, 5003) \
|
|
TD(kDaylightOffsetSeconds, 5004) \
|
|
TD(kHasDaylightSavingTime, 5005) \
|
|
TD(kIsDaylightSavingTime, 5006) \
|
|
TD(kMachineDescription, 5007) \
|
|
TD(kOSVersionBugfix, 5008) \
|
|
TD(kOSVersionBuild, 5009) \
|
|
TD(kOSVersionMajor, 5010) \
|
|
TD(kOSVersionMinor, 5011) \
|
|
TD(kPageSize, 5012) \
|
|
TD(kStandardName, 5013) \
|
|
TD(kStandardOffsetSeconds, 5014) \
|
|
TD(kVMStat, 5015) \
|
|
TD(kActive, 5016) \
|
|
TD(kFree, 5017) \
|
|
TD(kInactive, 5018) \
|
|
TD(kWired, 5019) \
|
|
TD(kAddressMask, 5020) \
|
|
TD(kThreads, 6000) \
|
|
TD(kDebugState, 6001) \
|
|
TD(kFloatState, 6002) \
|
|
TD(kThreadState, 6003) \
|
|
TD(kPriority, 6004) \
|
|
TD(kStackRegionAddress, 6005) \
|
|
TD(kStackRegionData, 6006) \
|
|
TD(kSuspendCount, 6007) \
|
|
TD(kThreadID, 6008) \
|
|
TD(kThreadDataAddress, 6009) \
|
|
TD(kThreadUncaughtNSExceptionFrames, 6010) \
|
|
TD(kThreadContextMemoryRegions, 6011) \
|
|
TD(kThreadContextMemoryRegionAddress, 6012) \
|
|
TD(kThreadContextMemoryRegionData, 6013) \
|
|
TD(kThreadName, 6014) \
|
|
TD(kMaxValue, 65535) \
|
|
// clang-format on
|
|
|
|
//! \brief They key for items in the intermediate dump file.
|
|
//!
|
|
//! These values are persisted to the intermediate crash dump file. Entries
|
|
//! should not be renumbered and numeric values should never be reused.
|
|
enum class IntermediateDumpKey : uint16_t {
|
|
#define X(NAME, VALUE) NAME = VALUE,
|
|
INTERMEDIATE_DUMP_KEYS(X)
|
|
#undef X
|
|
};
|
|
|
|
|
|
} // namespace internal
|
|
} // namespace crashpad
|
|
|
|
#endif // CRASHPAD_UTIL_IOS_IOS_INTERMEDIATE_DUMP_FORMAT_H_
|