OLD | NEW |
1 // Copyright (c) 2005, Google Inc. | 1 // Copyright (c) 2005, Google Inc. |
2 // All rights reserved. | 2 // All rights reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
(...skipping 23 matching lines...) Expand all Loading... |
34 #include "internal_logging.h" | 34 #include "internal_logging.h" |
35 #include <stdarg.h> // for va_end, va_start | 35 #include <stdarg.h> // for va_end, va_start |
36 #include <stdio.h> // for vsnprintf, va_list, etc | 36 #include <stdio.h> // for vsnprintf, va_list, etc |
37 #include <stdlib.h> // for abort | 37 #include <stdlib.h> // for abort |
38 #include <string.h> // for strlen, memcpy | 38 #include <string.h> // for strlen, memcpy |
39 #ifdef HAVE_UNISTD_H | 39 #ifdef HAVE_UNISTD_H |
40 #include <unistd.h> // for write() | 40 #include <unistd.h> // for write() |
41 #endif | 41 #endif |
42 | 42 |
43 #include <gperftools/malloc_extension.h> | 43 #include <gperftools/malloc_extension.h> |
| 44 #include "base/abort.h" |
44 #include "base/logging.h" // for perftools_vsnprintf | 45 #include "base/logging.h" // for perftools_vsnprintf |
45 #include "base/spinlock.h" // for SpinLockHolder, SpinLock | 46 #include "base/spinlock.h" // for SpinLockHolder, SpinLock |
46 | 47 |
47 static const int kLogBufSize = 800; | 48 static const int kLogBufSize = 800; |
48 | 49 |
49 // Variables for storing crash output. Allocated statically since we | 50 // Variables for storing crash output. Allocated statically since we |
50 // may not be able to heap-allocate while crashing. | 51 // may not be able to heap-allocate while crashing. |
51 static SpinLock crash_lock(base::LINKER_INITIALIZED); | 52 static SpinLock crash_lock(base::LINKER_INITIALIZED); |
52 static bool crashed = false; | 53 static bool crashed = false; |
53 static const int kStatsBufferSize = 16 << 10; | 54 static const int kStatsBufferSize = 16 << 10; |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 first_crash = true; | 110 first_crash = true; |
110 } | 111 } |
111 } | 112 } |
112 | 113 |
113 (*log_message_writer)(state.buf_, msglen); | 114 (*log_message_writer)(state.buf_, msglen); |
114 if (first_crash && mode == kCrashWithStats) { | 115 if (first_crash && mode == kCrashWithStats) { |
115 MallocExtension::instance()->GetStats(stats_buffer, kStatsBufferSize); | 116 MallocExtension::instance()->GetStats(stats_buffer, kStatsBufferSize); |
116 (*log_message_writer)(stats_buffer, strlen(stats_buffer)); | 117 (*log_message_writer)(stats_buffer, strlen(stats_buffer)); |
117 } | 118 } |
118 | 119 |
119 abort(); | 120 Abort(); |
120 } | 121 } |
121 | 122 |
122 bool Logger::Add(const LogItem& item) { | 123 bool Logger::Add(const LogItem& item) { |
123 // Separate items with spaces | 124 // Separate items with spaces |
124 if (p_ < end_) { | 125 if (p_ < end_) { |
125 *p_ = ' '; | 126 *p_ = ' '; |
126 p_++; | 127 p_++; |
127 } | 128 } |
128 | 129 |
129 switch (item.tag_) { | 130 switch (item.tag_) { |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 left_ = 0; | 185 left_ = 0; |
185 } else if (r > left_) { | 186 } else if (r > left_) { |
186 // Truncation | 187 // Truncation |
187 left_ = 0; | 188 left_ = 0; |
188 } else { | 189 } else { |
189 left_ -= r; | 190 left_ -= r; |
190 buf_ += r; | 191 buf_ += r; |
191 } | 192 } |
192 } | 193 } |
193 } | 194 } |
OLD | NEW |