| 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 |