OLD | NEW |
1 // Copyright (c) 2014, Google Inc. | 1 // Copyright (c) 2014, 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 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 if (success) | 98 if (success) |
99 success = DumpMappings(); | 99 success = DumpMappings(); |
100 LogLine("-----END BREAKPAD MICRODUMP-----"); | 100 LogLine("-----END BREAKPAD MICRODUMP-----"); |
101 dumper_->ThreadsResume(); | 101 dumper_->ThreadsResume(); |
102 return success; | 102 return success; |
103 } | 103 } |
104 | 104 |
105 private: | 105 private: |
106 // Writes one line to the system log. | 106 // Writes one line to the system log. |
107 void LogLine(const char* msg) { | 107 void LogLine(const char* msg) { |
| 108 #if defined(__ANDROID__) |
| 109 logger::writeToCrashLog(msg); |
| 110 #else |
108 logger::write(msg, my_strlen(msg)); | 111 logger::write(msg, my_strlen(msg)); |
109 #if !defined(__ANDROID__) | 112 logger::write("\n", 1); |
110 logger::write("\n", 1); // Android logger appends the \n. Linux's doesn't. | |
111 #endif | 113 #endif |
112 } | 114 } |
113 | 115 |
114 // Stages the given string in the current line buffer. | 116 // Stages the given string in the current line buffer. |
115 void LogAppend(const char* str) { | 117 void LogAppend(const char* str) { |
116 my_strlcat(log_line_, str, kLineBufferSize); | 118 my_strlcat(log_line_, str, kLineBufferSize); |
117 } | 119 } |
118 | 120 |
119 // As above (required to take precedence over template specialization below). | 121 // As above (required to take precedence over template specialization below). |
120 void LogAppend(char* str) { | 122 void LogAppend(char* str) { |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
418 dumper.set_crash_thread(context->tid); | 420 dumper.set_crash_thread(context->tid); |
419 } | 421 } |
420 MicrodumpWriter writer(context, mappings, build_fingerprint, product_info, | 422 MicrodumpWriter writer(context, mappings, build_fingerprint, product_info, |
421 &dumper); | 423 &dumper); |
422 if (!writer.Init()) | 424 if (!writer.Init()) |
423 return false; | 425 return false; |
424 return writer.Dump(); | 426 return writer.Dump(); |
425 } | 427 } |
426 | 428 |
427 } // namespace google_breakpad | 429 } // namespace google_breakpad |
OLD | NEW |