| Index: chrome_frame/crash_reporting/crash_report.cc
|
| ===================================================================
|
| --- chrome_frame/crash_reporting/crash_report.cc (revision 36161)
|
| +++ chrome_frame/crash_reporting/crash_report.cc (working copy)
|
| @@ -7,57 +7,20 @@
|
| #include "chrome_frame/crash_reporting/crash_report.h"
|
|
|
| #include "base/basictypes.h"
|
| -#include "base/logging.h"
|
| #include "breakpad/src/client/windows/handler/exception_handler.h"
|
| #include "chrome_frame/crash_reporting/vectored_handler.h"
|
| -#include "chrome_frame/crash_reporting/vectored_handler-impl.h"
|
|
|
| -namespace {
|
| // TODO(joshia): factor out common code with chrome used for crash reporting
|
| const wchar_t kGoogleUpdatePipeName[] = L"\\\\.\\pipe\\GoogleCrashServices\\";
|
| -
|
| google_breakpad::ExceptionHandler* g_breakpad = NULL;
|
|
|
| -__declspec(naked)
|
| -static EXCEPTION_REGISTRATION_RECORD* InternalRtlpGetExceptionList() {
|
| - __asm {
|
| - mov eax, fs:0
|
| - ret
|
| - }
|
| -}
|
| -} // end of namespace
|
| -
|
| -// Class which methods simply forwards to Win32 API and uses breakpad to write
|
| -// a minidump. Used as template (external interface) of VectoredHandlerT<E>.
|
| -class Win32VEHTraits : public VEHTraitsBase {
|
| - public:
|
| - static inline void* Register(PVECTORED_EXCEPTION_HANDLER func,
|
| - const void* module_start, const void* module_end) {
|
| - VEHTraitsBase::SetModule(module_start, module_end);
|
| - return ::AddVectoredExceptionHandler(1, func);
|
| - }
|
| -
|
| - static inline ULONG Unregister(void* handle) {
|
| - return ::RemoveVectoredExceptionHandler(handle);
|
| - }
|
| -
|
| - static inline bool WriteDump(EXCEPTION_POINTERS* p) {
|
| - return g_breakpad->WriteMinidumpForException(p);
|
| - }
|
| -
|
| - static inline EXCEPTION_REGISTRATION_RECORD* RtlpGetExceptionList() {
|
| - return InternalRtlpGetExceptionList();
|
| - }
|
| -
|
| - static inline WORD RtlCaptureStackBackTrace(DWORD FramesToSkip,
|
| - DWORD FramesToCapture, void** BackTrace, DWORD* BackTraceHash) {
|
| - return ::RtlCaptureStackBackTrace(FramesToSkip, FramesToCapture,
|
| - BackTrace, BackTraceHash);
|
| - }
|
| +Win32VEHTraits::CodeBlock Win32VEHTraits::IgnoreExceptions[kIgnoreEntries] = {
|
| + { "kernel32.dll", "IsBadReadPtr", 0, 100, NULL },
|
| + { "kernel32.dll", "IsBadWritePtr", 0, 100, NULL },
|
| + { "kernel32.dll", "IsBadStringPtrA", 0, 100, NULL },
|
| + { "kernel32.dll", "IsBadStringPtrW", 0, 100, NULL },
|
| };
|
|
|
| -extern "C" IMAGE_DOS_HEADER __ImageBase;
|
| -
|
| std::wstring GetCrashServerPipeName(const std::wstring& user_sid) {
|
| std::wstring pipe_name = kGoogleUpdatePipeName;
|
| pipe_name += user_sid;
|
|
|