crashpad/util/ios/ios_intermediate_dump_format.h
Ben Hamilton ed8cfeb2cd [snapshot] Add support for thread names
This CL adds a new method ThreadSnapshot::ThreadName(), implements
it in each snapshot implementation, and adds tests for iOS, macOS,
Linux, Windows, and Fuchsia.

Bug: crashpad:327
Change-Id: I35031975223854c19d977e057dd026a40d33fd41
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/3671776
Reviewed-by: Mark Mentovai <mark@chromium.org>
Commit-Queue: Ben Hamilton <benhamilton@google.com>
Reviewed-by: Ben Hamilton <benhamilton@google.com>
2022-06-13 20:58:37 +00:00

122 lines
3.7 KiB
C++

// Copyright 2021 The Crashpad Authors. All rights reserved.
//
// 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(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_