| OLD | NEW | 
|---|
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2009 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 #include "base/logging.h" | 5 #include "base/logging.h" | 
| 6 | 6 | 
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) | 
| 8 #include <windows.h> | 8 #include <windows.h> | 
| 9 typedef HANDLE FileHandle; | 9 typedef HANDLE FileHandle; | 
| 10 typedef HANDLE MutexHandle; | 10 typedef HANDLE MutexHandle; | 
| 11 #elif defined(OS_MACOSX) | 11 #elif defined(OS_MACOSX) | 
| (...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 513     } else { | 513     } else { | 
| 514       log_lock->Unlock(); | 514       log_lock->Unlock(); | 
| 515     } | 515     } | 
| 516   } | 516   } | 
| 517 | 517 | 
| 518   if (severity_ == LOG_FATAL) { | 518   if (severity_ == LOG_FATAL) { | 
| 519     // display a message or break into the debugger on a fatal error | 519     // display a message or break into the debugger on a fatal error | 
| 520     if (DebugUtil::BeingDebugged()) { | 520     if (DebugUtil::BeingDebugged()) { | 
| 521       DebugUtil::BreakDebugger(); | 521       DebugUtil::BreakDebugger(); | 
| 522     } else { | 522     } else { | 
|  | 523 #ifndef NDEBUG | 
|  | 524       // Dump a stack trace on a fatal. | 
|  | 525       StackTrace trace; | 
|  | 526       stream_ << "\n";  // Newline to separate from log message. | 
|  | 527       trace.OutputToStream(&stream_); | 
|  | 528 #endif | 
|  | 529 | 
| 523       if (log_assert_handler) { | 530       if (log_assert_handler) { | 
| 524         // make a copy of the string for the handler out of paranoia | 531         // make a copy of the string for the handler out of paranoia | 
| 525         log_assert_handler(std::string(stream_.str())); | 532         log_assert_handler(std::string(stream_.str())); | 
| 526       } else { | 533       } else { | 
| 527         // Don't use the string with the newline, get a fresh version to send to | 534         // Don't use the string with the newline, get a fresh version to send to | 
| 528         // the debug message process. We also don't display assertions to the | 535         // the debug message process. We also don't display assertions to the | 
| 529         // user in release mode. The enduser can't do anything with this | 536         // user in release mode. The enduser can't do anything with this | 
| 530         // information, and displaying message boxes when the application is | 537         // information, and displaying message boxes when the application is | 
| 531         // hosed can cause additional problems. | 538         // hosed can cause additional problems. | 
| 532 #ifndef NDEBUG | 539 #ifndef NDEBUG | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
| 547 } | 554 } | 
| 548 | 555 | 
| 549 void CloseLogFile() { | 556 void CloseLogFile() { | 
| 550   if (!log_file) | 557   if (!log_file) | 
| 551     return; | 558     return; | 
| 552 | 559 | 
| 553   CloseFile(log_file); | 560   CloseFile(log_file); | 
| 554   log_file = NULL; | 561   log_file = NULL; | 
| 555 } | 562 } | 
| 556 | 563 | 
| 557 } // namespace logging | 564 }  // namespace logging | 
| 558 | 565 | 
| 559 std::ostream& operator<<(std::ostream& out, const wchar_t* wstr) { | 566 std::ostream& operator<<(std::ostream& out, const wchar_t* wstr) { | 
| 560   return out << base::SysWideToUTF8(std::wstring(wstr)); | 567   return out << base::SysWideToUTF8(std::wstring(wstr)); | 
| 561 } | 568 } | 
| OLD | NEW | 
|---|