mirror of
https://github.com/chromium/crashpad.git
synced 2024-12-31 01:43:03 +08:00
1baff4ff92
This adds IsExceptionNonfatalResource() and its test, and uses it in crashpad_handler. When non-fatal resource exceptions are encountered, no crash report is generated. crashpad_handler swallows these exceptions. Alternatively, it could allow them to be sent to the system’s host-level resource exception handler, normally com.apple.ReportCrash.root, which would allow them to be processed in the same way as when Crashpad is not in use. I’m not sure which option is better. I chose to swallow them because there doesn’t appear to be much value in letting com.apple.ReportCrash.root and spindump look at them. This also moves ExcCrashRecoverOriginalException() to the new file as a sibling of IsExceptionNonfatalResource(). This provides better organization. BUG=crashpad:35, chromium:474163, chromium:474326 TEST=crashpad_util_test ExceptionTypes.IsExceptionNonfatalResource R=rsesek@chromium.org Review URL: https://codereview.chromium.org/1066243002
63 lines
1.6 KiB
C
63 lines
1.6 KiB
C
// Copyright 2015 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_COMPAT_MAC_KERN_EXC_RESOURCE_H_
|
|
#define CRASHPAD_COMPAT_MAC_KERN_EXC_RESOURCE_H_
|
|
|
|
#if __has_include_next(<kern/exc_resource.h>)
|
|
#include_next <kern/exc_resource.h>
|
|
#endif
|
|
|
|
// 10.9 SDK
|
|
|
|
#ifndef EXC_RESOURCE_DECODE_RESOURCE_TYPE
|
|
#define EXC_RESOURCE_DECODE_RESOURCE_TYPE(code) (((code) >> 61) & 0x7ull)
|
|
#endif
|
|
|
|
#ifndef EXC_RESOURCE_DECODE_FLAVOR
|
|
#define EXC_RESOURCE_DECODE_FLAVOR(code) (((code) >> 58) & 0x7ull)
|
|
#endif
|
|
|
|
#ifndef RESOURCE_TYPE_CPU
|
|
#define RESOURCE_TYPE_CPU 1
|
|
#endif
|
|
|
|
#ifndef RESOURCE_TYPE_WAKEUPS
|
|
#define RESOURCE_TYPE_WAKEUPS 2
|
|
#endif
|
|
|
|
#ifndef RESOURCE_TYPE_MEMORY
|
|
#define RESOURCE_TYPE_MEMORY 3
|
|
#endif
|
|
|
|
#ifndef FLAVOR_CPU_MONITOR
|
|
#define FLAVOR_CPU_MONITOR 1
|
|
#endif
|
|
|
|
#ifndef FLAVOR_WAKEUPS_MONITOR
|
|
#define FLAVOR_WAKEUPS_MONITOR 1
|
|
#endif
|
|
|
|
#ifndef FLAVOR_HIGH_WATERMARK
|
|
#define FLAVOR_HIGH_WATERMARK 1
|
|
#endif
|
|
|
|
// 10.10 SDK
|
|
|
|
#ifndef FLAVOR_CPU_MONITOR_FATAL
|
|
#define FLAVOR_CPU_MONITOR_FATAL 2
|
|
#endif
|
|
|
|
#endif // CRASHPAD_COMPAT_MAC_KERN_EXC_RESOURCE_H_
|