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

Side by Side Diff: base/mac/mach_logging.h

Issue 274193007: Back out r269483 and the line of fixes that followed it. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « base/mac/mac_logging.h ('k') | base/mac/scoped_mach_port.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef BASE_MAC_MACH_LOGGING_H_ 5 #ifndef BASE_MAC_MACH_LOGGING_H_
6 #define BASE_MAC_MACH_LOGGING_H_ 6 #define BASE_MAC_MACH_LOGGING_H_
7 7
8 #include <mach/mach.h> 8 #include <mach/mach.h>
9 9
10 #include "base/base_export.h"
11 #include "base/basictypes.h" 10 #include "base/basictypes.h"
12 #include "base/logging.h" 11 #include "base/logging.h"
13 12
14 // Use the MACH_LOG family of macros along with a mach_error_t (kern_return_t) 13 // Use the MACH_LOG family of macros along with a mach_error_t (kern_return_t)
15 // containing a Mach error. The error value will be decoded so that logged 14 // containing a Mach error. The error value will be decoded so that logged
16 // messages explain the error. 15 // messages explain the error.
17 // 16 //
18 // Use the BOOTSTRAP_LOG family of macros specifically for errors that occur 17 // Use the BOOTSTRAP_LOG family of macros specifically for errors that occur
19 // while interoperating with the bootstrap subsystem. These errors will first 18 // while interoperating with the bootstrap subsystem. These errors will first
20 // be looked up as bootstrap error messages. If no match is found, they will 19 // be looked up as bootstrap error messages. If no match is found, they will
21 // be treated as generic Mach errors, as in MACH_LOG. 20 // be treated as generic Mach errors, as in MACH_LOG.
22 // 21 //
23 // Examples: 22 // Examples:
24 // 23 //
25 // kern_return_t kr = mach_timebase_info(&info); 24 // kern_return_t kr = mach_timebase_info(&info);
26 // if (kr != KERN_SUCCESS) { 25 // if (kr != KERN_SUCCESS) {
27 // MACH_LOG(ERROR, kr) << "mach_timebase_info"; 26 // MACH_LOG(ERROR, kr) << "mach_timebase_info";
28 // } 27 // }
29 // 28 //
30 // kr = mach_vm_deallocate(task, address, size); 29 // kr = mach_vm_deallocate(task, address, size);
31 // MACH_DCHECK(kr == KERN_SUCCESS, kr) << "mach_vm_deallocate"; 30 // MACH_DCHECK(kr == KERN_SUCCESS, kr) << "mach_vm_deallocate";
32 31
33 namespace logging { 32 namespace logging {
34 33
35 class BASE_EXPORT MachLogMessage : public logging::LogMessage { 34 class MachLogMessage : public logging::LogMessage {
36 public: 35 public:
37 MachLogMessage(const char* file_path, 36 MachLogMessage(const char* file_path,
38 int line, 37 int line,
39 LogSeverity severity, 38 LogSeverity severity,
40 mach_error_t mach_err); 39 mach_error_t mach_err);
41 ~MachLogMessage(); 40 ~MachLogMessage();
42 41
43 private: 42 private:
44 mach_error_t mach_err_; 43 mach_error_t mach_err_;
45 44
46 DISALLOW_COPY_AND_ASSIGN(MachLogMessage); 45 DISALLOW_COPY_AND_ASSIGN(MachLogMessage);
47 }; 46 };
48 47
49 class BASE_EXPORT BootstrapLogMessage : public logging::LogMessage { 48 class BootstrapLogMessage : public logging::LogMessage {
50 public: 49 public:
51 BootstrapLogMessage(const char* file_path, 50 BootstrapLogMessage(const char* file_path,
52 int line, 51 int line,
53 LogSeverity severity, 52 LogSeverity severity,
54 kern_return_t bootstrap_err); 53 kern_return_t bootstrap_err);
55 ~BootstrapLogMessage(); 54 ~BootstrapLogMessage();
56 55
57 private: 56 private:
58 kern_return_t bootstrap_err_; 57 kern_return_t bootstrap_err_;
59 58
60 DISALLOW_COPY_AND_ASSIGN(BootstrapLogMessage); 59 DISALLOW_COPY_AND_ASSIGN(BootstrapLogMessage);
61 }; 60 };
62 61
63 } // namespace logging 62 } // namespace logging
64 63
65 #if defined(NDEBUG)
66 #define MACH_DVLOG_IS_ON(verbose_level) 0
67 #else
68 #define MACH_DVLOG_IS_ON(verbose_level) VLOG_IS_ON(verbose_level)
69 #endif
70
71 #define MACH_LOG_STREAM(severity, mach_err) \ 64 #define MACH_LOG_STREAM(severity, mach_err) \
72 COMPACT_GOOGLE_LOG_EX_ ## severity(MachLogMessage, mach_err).stream() 65 COMPACT_GOOGLE_LOG_EX_ ## severity(MachLogMessage, mach_err).stream()
73 #define MACH_VLOG_STREAM(verbose_level, mach_err) \ 66 #define MACH_VLOG_STREAM(verbose_level, mach_err) \
74 logging::MachLogMessage(__FILE__, __LINE__, \ 67 logging::MachLogMessage(__FILE__, __LINE__, \
75 -verbose_level, mach_err).stream() 68 -verbose_level, mach_err).stream()
76 69
77 #define MACH_LOG(severity, mach_err) \ 70 #define MACH_LOG(severity, mach_err) \
78 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), LOG_IS_ON(severity)) 71 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), LOG_IS_ON(severity))
79 #define MACH_LOG_IF(severity, condition, mach_err) \ 72 #define MACH_LOG_IF(severity, condition, mach_err) \
80 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), \ 73 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), \
(...skipping 11 matching lines...) Expand all
92 << "Check failed: " # condition << ". " 85 << "Check failed: " # condition << ". "
93 86
94 #define MACH_DLOG(severity, mach_err) \ 87 #define MACH_DLOG(severity, mach_err) \
95 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), DLOG_IS_ON(severity)) 88 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), DLOG_IS_ON(severity))
96 #define MACH_DLOG_IF(severity, condition, mach_err) \ 89 #define MACH_DLOG_IF(severity, condition, mach_err) \
97 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), \ 90 LAZY_STREAM(MACH_LOG_STREAM(severity, mach_err), \
98 DLOG_IS_ON(severity) && (condition)) 91 DLOG_IS_ON(severity) && (condition))
99 92
100 #define MACH_DVLOG(verbose_level, mach_err) \ 93 #define MACH_DVLOG(verbose_level, mach_err) \
101 LAZY_STREAM(MACH_VLOG_STREAM(verbose_level, mach_err), \ 94 LAZY_STREAM(MACH_VLOG_STREAM(verbose_level, mach_err), \
102 MACH_DVLOG_IS_ON(verbose_level)) 95 DVLOG_IS_ON(verbose_level))
103 #define MACH_DVLOG_IF(verbose_level, condition, mach_err) \ 96 #define MACH_DVLOG_IF(verbose_level, condition, mach_err) \
104 LAZY_STREAM(MACH_VLOG_STREAM(verbose_level, mach_err), \ 97 LAZY_STREAM(MACH_VLOG_STREAM(verbose_level, mach_err) \
105 MACH_DVLOG_IS_ON(verbose_level) && (condition)) 98 DVLOG_IS_ON(verbose_level) && (condition))
106 99
107 #define MACH_DCHECK(condition, mach_err) \ 100 #define MACH_DCHECK(condition, mach_err) \
108 LAZY_STREAM(MACH_LOG_STREAM(FATAL, mach_err), \ 101 LAZY_STREAM(MACH_LOG_STREAM(FATAL, mach_err), \
109 DCHECK_IS_ON && !(condition)) \ 102 DCHECK_IS_ON && !(condition)) \
110 << "Check failed: " # condition << ". " 103 << "Check failed: " # condition << ". "
111 104
112 #define BOOTSTRAP_DVLOG_IS_ON MACH_DVLOG_IS_ON
113
114 #define BOOTSTRAP_LOG_STREAM(severity, bootstrap_err) \ 105 #define BOOTSTRAP_LOG_STREAM(severity, bootstrap_err) \
115 COMPACT_GOOGLE_LOG_EX_ ## severity(BootstrapLogMessage, \ 106 COMPACT_GOOGLE_LOG_EX_ ## severity(BootstrapLogMessage, \
116 bootstrap_err).stream() 107 bootstrap_err).stream()
117 #define BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err) \ 108 #define BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err) \
118 logging::BootstrapLogMessage(__FILE__, __LINE__, \ 109 logging::BootstrapLogMessage(__FILE__, __LINE__, \
119 -verbose_level, bootstrap_err).stream() 110 -verbose_level, bootstrap_err).stream()
120 111
121 #define BOOTSTRAP_LOG(severity, bootstrap_err) \ 112 #define BOOTSTRAP_LOG(severity, bootstrap_err) \
122 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, \ 113 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, \
123 bootstrap_err), LOG_IS_ON(severity)) 114 bootstrap_err), LOG_IS_ON(severity))
(...skipping 14 matching lines...) Expand all
138 129
139 #define BOOTSTRAP_DLOG(severity, bootstrap_err) \ 130 #define BOOTSTRAP_DLOG(severity, bootstrap_err) \
140 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, bootstrap_err), \ 131 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, bootstrap_err), \
141 DLOG_IS_ON(severity)) 132 DLOG_IS_ON(severity))
142 #define BOOTSTRAP_DLOG_IF(severity, condition, bootstrap_err) \ 133 #define BOOTSTRAP_DLOG_IF(severity, condition, bootstrap_err) \
143 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, bootstrap_err), \ 134 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(severity, bootstrap_err), \
144 DLOG_IS_ON(severity) && (condition)) 135 DLOG_IS_ON(severity) && (condition))
145 136
146 #define BOOTSTRAP_DVLOG(verbose_level, bootstrap_err) \ 137 #define BOOTSTRAP_DVLOG(verbose_level, bootstrap_err) \
147 LAZY_STREAM(BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err), \ 138 LAZY_STREAM(BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err), \
148 BOOTSTRAP_DVLOG_IS_ON(verbose_level)) 139 DVLOG_IS_ON(verbose_level))
149 #define BOOTSTRAP_DVLOG_IF(verbose_level, condition, bootstrap_err) \ 140 #define BOOTSTRAP_DVLOG_IF(verbose_level, condition, bootstrap_err) \
150 LAZY_STREAM(BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err), \ 141 LAZY_STREAM(BOOTSTRAP_VLOG_STREAM(verbose_level, bootstrap_err) \
151 BOOTSTRAP_DVLOG_IS_ON(verbose_level) && (condition)) 142 DVLOG_IS_ON(verbose_level) && (condition))
152 143
153 #define BOOTSTRAP_DCHECK(condition, bootstrap_err) \ 144 #define BOOTSTRAP_DCHECK(condition, bootstrap_err) \
154 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(FATAL, bootstrap_err), \ 145 LAZY_STREAM(BOOTSTRAP_LOG_STREAM(FATAL, bootstrap_err), \
155 DCHECK_IS_ON && !(condition)) \ 146 DCHECK_IS_ON && !(condition)) \
156 << "Check failed: " # condition << ". " 147 << "Check failed: " # condition << ". "
157 148
158 #endif // BASE_MAC_MACH_LOGGING_H_ 149 #endif // BASE_MAC_MACH_LOGGING_H_
OLDNEW
« no previous file with comments | « base/mac/mac_logging.h ('k') | base/mac/scoped_mach_port.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698