Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8835)

Unified Diff: chrome_frame/crash_reporting/vectored_handler.h

Issue 126143005: Remove Chrome Frame code and resources. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: sync to r244038 Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome_frame/crash_reporting/vectored_handler.h
diff --git a/chrome_frame/crash_reporting/vectored_handler.h b/chrome_frame/crash_reporting/vectored_handler.h
deleted file mode 100644
index 1466bb5db17157750b4f8cb584186144a6edc71b..0000000000000000000000000000000000000000
--- a/chrome_frame/crash_reporting/vectored_handler.h
+++ /dev/null
@@ -1,113 +0,0 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_FRAME_CRASH_REPORTING_VECTORED_HANDLER_H_
-#define CHROME_FRAME_CRASH_REPORTING_VECTORED_HANDLER_H_
-
-
-#if !defined(_M_IX86)
-#error only x86 is supported for now.
-#endif
-
-// Create dump policy:
-// 1. Scan SEH chain, if there is a handler/filter that belongs to our
-// module - assume we expect this one and hence do nothing here.
-// 2. If the address of the exception is in our module - create dump.
-// 3. If our module is in somewhere in callstack - create dump.
-// The E class is supposed to provide external/API functions. Using template
-// make testability easier. It shall confirm the following concept/archetype:
-//struct E {
-// void WriteDump(EXCEPTION_POINTERS* p) {
-// }
-//
-// // Used mainly to ignore exceptions from IsBadRead/Write/Ptr.
-// bool ShouldIgnoreException(const EXCEPTION_POINTERS* exptr) {
-// return 0;
-// }
-//
-// // Retrieve the SEH list head.
-// EXCEPTION_REGISTRATION_RECORD* RtlpGetExceptionList() {
-// return NULL;
-// }
-//
-// // Get the stack trace as correctly as possible.
-// WORD RtlCaptureStackBackTrace(DWORD FramesToSkip, DWORD FramesToCapture,
-// void** BackTrace, DWORD* BackTraceHash) {
-// return 0;
-// }
-//
-// // Check whether the stack guard page is in place.
-// bool CheckForStackOverflow(EXCEPTION_POINTERS* p) {
-// return 0;
-// }
-//
-// bool IsOurModule(const void* address) {
-// return 0;
-// }
-//};
-// The methods shall be placed in .text$veh_m
-template <typename E>
-class VectoredHandlerT {
- public:
- VectoredHandlerT(E* api);
- ~VectoredHandlerT();
-
- // TODO(stoyan): Come with better way to skip initial stack frames.
- FORCEINLINE LONG Handler(EXCEPTION_POINTERS* exceptionInfo);
- long get_exceptions_seen() const {
- return exceptions_seen_;
- }
-
- private:
- bool ModuleHasInstalledSEHFilter();
- E* api_;
- long exceptions_seen_;
-};
-
-// Maintains start and end address of a single module of interest. If we want
-// do check for multiple modules, this class has to be extended to support a
-// list of modules (DLLs).
-struct ModuleOfInterest {
- // The callback from VectoredHandlerT::Handler().
- inline bool IsOurModule(const void* address) {
- return (start_ <= address && address < end_);
- }
-
- // Helpers.
- inline void SetModule(const void* module_start, const void* module_end) {
- start_ = module_start;
- end_ = module_end;
- }
-
- inline void SetCurrentModule() {
- // Find current module boundaries.
- const void* start = &__ImageBase;
- const char* s = reinterpret_cast<const char*>(start);
- const IMAGE_NT_HEADERS32* nt = reinterpret_cast<const IMAGE_NT_HEADERS32*>
- (s + __ImageBase.e_lfanew);
- const void* end = s + nt->OptionalHeader.SizeOfImage;
- SetModule(start, end);
- }
-
- const void* start_;
- const void* end_;
-};
-
-struct ModuleOfInterestWithExcludedRegion : public ModuleOfInterest {
- inline bool IsOurModule(const void* address) {
- return (start_ <= address && address < end_) &&
- (address < special_region_start_ || special_region_end_ <= address);
- }
-
- inline void SetExcludedRegion(const void* start, const void* end) {
- special_region_start_ = start;
- special_region_end_ = end;
- }
-
- const void* special_region_start_;
- const void* special_region_end_;
-};
-
-
-#endif // CHROME_FRAME_CRASH_REPORTING_VECTORED_HANDLER_H_
« no previous file with comments | « chrome_frame/crash_reporting/nt_loader_unittest.cc ('k') | chrome_frame/crash_reporting/vectored_handler-impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698