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

Unified Diff: base/debug.h

Issue 624713003: Keep only base/extractor.[cc|h]. (Closed) Base URL: https://chromium.googlesource.com/external/omaha.git@master
Patch Set: Created 6 years, 2 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
« no previous file with comments | « base/crc.cc ('k') | base/debug.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/debug.h
diff --git a/base/debug.h b/base/debug.h
deleted file mode 100644
index 5566a0b564840b026e9161ad81e1ec207c646628..0000000000000000000000000000000000000000
--- a/base/debug.h
+++ /dev/null
@@ -1,305 +0,0 @@
-// Copyright 2003-2009 Google Inc.
-//
-// 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.
-// ========================================================================
-//
-// Debug functions
-
-#ifndef OMAHA_BASE_DEBUG_H_
-#define OMAHA_BASE_DEBUG_H_
-
-// To create a release build with asserts turned on, uncomment the
-// following line, and uncomment the linking with atls.lib in api.
-//
-// #define ASSERT_IN_RELEASE
-
-#include "omaha/base/atlassert.h"
-#include "omaha/base/synchronized.h"
-#include "omaha/base/time.h"
-
-namespace omaha {
-
-// hash table for counts of the number of times REPORTs occur
-// template<class K, class V>
-// class HashTable;
-// extern HashTable<uint32, uint16> *g_reports;
-
-#define kMaxUniqueReports (20)
-#define kMaxReportCountString (20)
-
-class ReportIds;
-extern ReportIds g_report_ids;
-extern volatile LONG g_debugassertrecursioncheck;
-extern bool g_always_assert;
-
-const int kMaxStackTraceDialogLen = 512; // too long and dialog box fails
-
-// TODO(omaha): consider merging this into DebugObserver.
-//
-// For automated testing, we don't (always) want asserts to fire. So
-// we allow the unit test system to handle asserts instead.
-//
-// Give a function matching the prototype to REPLACE_ASSERT_FUNCTION to
-// have your function called instead of the normal assert function.
-typedef int DebugAssertFunctionType(const char *expression,
- const char *message, const char *file, int line);
-
-enum ReportType;
-enum DebugReportKind;
-class DebugObserver {
- public:
- virtual ~DebugObserver() {}
- virtual int SehSendMinidump(unsigned int code, struct _EXCEPTION_POINTERS *ep,
- time64 time_between_minidumps) = 0;
-
-#if defined(_DEBUG) || defined(ASSERT_IN_RELEASE)
- virtual void OnAssert(const char *expr, const TCHAR *msg,
- const char *filename, int32 linenumber) = 0;
-#endif
-
-#if defined(_DEBUG)
- virtual void SendExceptionReport(const TCHAR *log_file, const TCHAR *filename,
- int line, const TCHAR *type, uint32 id,
- bool offline) = 0;
- virtual CString OnDebugReport(uint32 id, bool is_report, ReportType type,
- const char *expr, const TCHAR *message,
- const char *filename, int32 linenumber,
- DebugReportKind debug_report_kind) = 0;
-#endif
-};
-
-// replaces the debug observer, returns the previous value.
-DebugObserver* SetDebugObserver(DebugObserver* observer);
-DebugObserver* PeekDebugObserver();
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-int SehSendMinidump(unsigned int code,
- struct _EXCEPTION_POINTERS *ep,
- time64 time_between_minidumps);
-
-#define kMinReportInterval100ns (60 * kSecsTo100ns)
-#define kMinStackReportInterval100ns (60 * kSecsTo100ns)
-#define DEBUG_LOG_SEPARATOR_CHAR "-------------------------------------------\n"
-#define DEBUG_LOG_SEPARATOR L"-------------------------------------------\n"
-#define kExceptionReportHeaders L"Content-Type: binary"
-
-#undef ASSERT
-#undef VERIFY
-#undef TRACE
-
-// Holds information about REPORTS and their frequency
-struct ReportData {
- uint32 report_counts_num;
- uint32 report_ids[kMaxUniqueReports];
- uint16 report_counts[kMaxUniqueReports];
-};
-
-// Used to hold REPORT IDs and to back them to the registry, where they'll be
-// read and sent in a ping.
-class ReportIds : public GLock {
- public:
- ReportIds();
- ~ReportIds();
-
- // Call this after a successful ping to clear the report IDs from the registry
- // and from this component (TRS).
- void ResetReportsAfterPing();
-
- // Adds a report ID to our list, if there's enough space.
- bool ReleaseReport(uint32 id);
-
- // Creates a string with the report IDs and their frequency.
- // Caller deletes string.
- TCHAR *DebugReportString();
-
- private:
- ReportData data_;
-
- // Merges the report data from data2 with data1.
- void MergeReports(ReportData *data1, const ReportData *data2);
-
- // We have to use RegKey directly, because we can't depend on the global
- // Config object during destruction.
- bool LoadReportData(ReportData **data);
- void SaveReportData(ReportData *data);
-
- DISALLOW_EVIL_CONSTRUCTORS(ReportIds);
-};
-
-#if defined(_DEBUG) || defined(ASSERT_IN_RELEASE)
- // Replaces the debug assert function; returns the old value.
- DebugAssertFunctionType *ReplaceDebugAssertFunction(DebugAssertFunctionType
- *replacement);
- #define REPLACE_ASSERT_FUNCTION(replacement) \
- ReplaceDebugAssertFunction(replacement)
-#else
- #define REPLACE_ASSERT_FUNCTION(replacement) NULL
-#endif
-
-#ifdef _DEBUG
- void SendExceptionReport(const TCHAR *log_file,
- const TCHAR *filename,
- int line,
- const TCHAR *type,
- uint32 id,
- bool offline);
-
- void SendStackTrace(const TCHAR *filename,
- int line,
- const TCHAR *type,
- bool all_threads,
- uint32 id);
-
- // DEBUG MODE
-
- extern bool g_LSPMode;
-
- bool DebugReport(unsigned int id,
- ReportType type,
- const char *expr,
- const TCHAR *message,
- const char *filename,
- int linenumber,
- DebugReportKind debug_report_kind);
-
- #define VERIFY(expr, msg) ASSERT(expr, msg) // VERIFY is ASSERT
-
- #define ASSERT(expr, msg) \
- do { \
- ((expr) ? 0 : omaha::DebugReport(0, omaha::R_FATAL, #expr, \
- omaha::SPRINTF msg, __FILE__, __LINE__, omaha::DEBUGREPORT_ASSERT)); \
- } while (0)
-
- #define REPORT(expr, type, msg, id) \
- ((expr) ? 0 : omaha::DebugReport(id, \
- type, \
- #expr, \
- omaha::SPRINTF msg, \
- __FILE__, \
- __LINE__, \
- omaha::DEBUGREPORT_REPORT))
- void DebugAbort(const TCHAR* msg,
- const char* filename,
- int32 linenumber,
- bool do_abort);
- #define ABORT(msg) \
- omaha::DebugAbort(omaha::SPRINTF msg, __FILE__, __LINE__, true)
-
- void TraceError(DWORD error);
- inline void TraceLastError() { TraceError(GetLastError()); }
-
- /**
- * Iterates through HKEY_CLASSES_ROOT\Interface and calls QI for
- * all the interfaces there. Useful for finding out what type of
- * object you're dealing with :-)
- */
- void DumpInterface(IUnknown* unknown);
-
-#else // #ifdef _DEBUG
-
- #ifdef ASSERT_IN_RELEASE
- bool ReleaseAssert(const char *expr,
- const TCHAR *msg,
- const char *filename,
- int32 linenumber);
- #define ASSERT(expr, msg) \
- ((expr) ? 0 : ReleaseAssert(#expr, SPRINTF msg, __FILE__, __LINE__))
- #else
- #define ASSERT(expr, msg) 0
- #endif
-
- // VERIFY executes but does not check expression
- #define VERIFY(expr, msg) \
- do { \
- (expr); \
- } while (0)
- #define REPORT(expr, type, msg, id) \
- ((expr) ? 0 : g_report_ids.ReleaseReport(id))
- void ReleaseAbort(const TCHAR* msg,
- const char* filename,
- int32 linenumber,
- bool do_abort);
- #define ABORT(msg) ReleaseAbort(SPRINTF msg, __FILE__, __LINE__, true)
-
-#endif // #ifdef _DEBUG
-
-#define ASSERT1(expr) ASSERT(expr, (_T("")))
-#define VERIFY1(expr) VERIFY(expr, (_T("")))
-
-#ifdef __cplusplus
-} // extern "C"{
-#endif
-
-#ifdef _DEBUG
-void ShowAssertDialog(const TCHAR *message, const TCHAR *title);
-
-// used to automatically dump the global summary of reports when the
-// program exits
-class ReportSummaryGenerator {
- public:
- ReportSummaryGenerator() {}
- // calls DumpReportSummary()
- ~ReportSummaryGenerator();
- // some programs exit without calling destructors, they can use this function
- // to dump the report summary
- void DumpReportSummary();
- // get text summary of reports
- // caller is responsible for deleting the string returned
- TCHAR *GetReportSummary();
- DISALLOW_EVIL_CONSTRUCTORS(ReportSummaryGenerator);
-};
-
-extern ReportSummaryGenerator g_report_summary_generator;
-#endif
-
-// return string from format+arglist; for debugging; not thread-safe
-TCHAR * __cdecl SPRINTF(const TCHAR * format, ...);
-bool DebugError(const char * expr,
- const TCHAR * message,
- const char * filename,
- INT linenumber,
- BOOL report_only);
-
-// shows an error dialog in DEBUG and when g_release_debug is true
-//
-// example usage:
-//
-// __try {
-// do something that sometimes causes a known exception (e.g.,
-// calling third party code)
-// } __except(SehNoMinidump(GetExceptionCode(), GetExceptionInformation(),
-// __FILE__, __LINE__)) {
-// REPORT(false, R_ERROR, (L"exception doing something"), 103178920);
-// }
-// show_message - show an error dialog in DEBUG and when g_release_debug is true
-int SehNoMinidump(unsigned int code, struct _EXCEPTION_POINTERS *ep,
- const char *filename, int32 linenumber, bool show_message);
-
-/**
-* @return Always returns an error value. If GetLastError is not ERROR_SUCCESS
-* the function returns an HRESULT value derived from GetLastError()
-*/
-inline HRESULT GetCurError() {
- return ::GetLastError() == ERROR_SUCCESS ?
- E_FAIL : HRESULT_FROM_WIN32(::GetLastError());
-}
-
-// Returns the directory where the debugging module stores debug-related files.
-CString GetDebugDirectory();
-
-} // namespace omaha
-
-#endif // OMAHA_BASE_DEBUG_H_
« no previous file with comments | « base/crc.cc ('k') | base/debug.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698