OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 "components/crash/content/browser/crash_dump_manager_android.h" | 5 #include "components/crash/content/browser/crash_dump_manager_android.h" |
6 | 6 |
| 7 #include <stdint.h> |
| 8 |
7 #include "base/bind.h" | 9 #include "base/bind.h" |
8 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
9 #include "base/format_macros.h" | 11 #include "base/format_macros.h" |
10 #include "base/logging.h" | 12 #include "base/logging.h" |
11 #include "base/metrics/histogram_macros.h" | 13 #include "base/metrics/histogram_macros.h" |
12 #include "base/posix/global_descriptors.h" | 14 #include "base/posix/global_descriptors.h" |
13 #include "base/process/process.h" | 15 #include "base/process/process.h" |
14 #include "base/rand_util.h" | 16 #include "base/rand_util.h" |
15 #include "base/stl_util.h" | 17 #include "base/stl_util.h" |
16 #include "base/strings/stringprintf.h" | 18 #include "base/strings/stringprintf.h" |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 | 85 |
84 // static | 86 // static |
85 void CrashDumpManager::ProcessMinidump( | 87 void CrashDumpManager::ProcessMinidump( |
86 const base::FilePath& minidump_path, | 88 const base::FilePath& minidump_path, |
87 base::ProcessHandle pid, | 89 base::ProcessHandle pid, |
88 content::ProcessType process_type, | 90 content::ProcessType process_type, |
89 base::TerminationStatus termination_status, | 91 base::TerminationStatus termination_status, |
90 base::android::ApplicationState app_state) { | 92 base::android::ApplicationState app_state) { |
91 DCHECK_CURRENTLY_ON(BrowserThread::FILE); | 93 DCHECK_CURRENTLY_ON(BrowserThread::FILE); |
92 CHECK(instance_); | 94 CHECK(instance_); |
93 int64 file_size = 0; | 95 int64_t file_size = 0; |
94 int r = base::GetFileSize(minidump_path, &file_size); | 96 int r = base::GetFileSize(minidump_path, &file_size); |
95 DCHECK(r) << "Failed to retrieve size for minidump " | 97 DCHECK(r) << "Failed to retrieve size for minidump " |
96 << minidump_path.value(); | 98 << minidump_path.value(); |
97 | 99 |
98 // TODO(wnwen): If these numbers match up to TabWebContentsObserver's | 100 // TODO(wnwen): If these numbers match up to TabWebContentsObserver's |
99 // TabRendererCrashStatus histogram, then remove that one as this is more | 101 // TabRendererCrashStatus histogram, then remove that one as this is more |
100 // accurate with more detail. | 102 // accurate with more detail. |
101 if (process_type == content::PROCESS_TYPE_RENDERER && | 103 if (process_type == content::PROCESS_TYPE_RENDERER && |
102 app_state != base::android::APPLICATION_STATE_UNKNOWN) { | 104 app_state != base::android::APPLICATION_STATE_UNKNOWN) { |
103 ExitStatus renderer_exit_status; | 105 ExitStatus renderer_exit_status; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
140 << minidump_path.value(); | 142 << minidump_path.value(); |
141 return; | 143 return; |
142 } | 144 } |
143 | 145 |
144 // We are dealing with a valid minidump. Copy it to the crash report | 146 // We are dealing with a valid minidump. Copy it to the crash report |
145 // directory from where Java code will upload it later on. | 147 // directory from where Java code will upload it later on. |
146 if (instance_->crash_dump_dir_.empty()) { | 148 if (instance_->crash_dump_dir_.empty()) { |
147 NOTREACHED() << "Failed to retrieve the crash dump directory."; | 149 NOTREACHED() << "Failed to retrieve the crash dump directory."; |
148 return; | 150 return; |
149 } | 151 } |
150 const uint64 rand = base::RandUint64(); | 152 const uint64_t rand = base::RandUint64(); |
151 const std::string filename = | 153 const std::string filename = |
152 base::StringPrintf("chromium-renderer-minidump-%016" PRIx64 ".dmp%d", | 154 base::StringPrintf("chromium-renderer-minidump-%016" PRIx64 ".dmp%d", |
153 rand, pid); | 155 rand, pid); |
154 base::FilePath dest_path = instance_->crash_dump_dir_.Append(filename); | 156 base::FilePath dest_path = instance_->crash_dump_dir_.Append(filename); |
155 r = base::Move(minidump_path, dest_path); | 157 r = base::Move(minidump_path, dest_path); |
156 if (!r) { | 158 if (!r) { |
157 LOG(ERROR) << "Failed to move crash dump from " << minidump_path.value() | 159 LOG(ERROR) << "Failed to move crash dump from " << minidump_path.value() |
158 << " to " << dest_path.value(); | 160 << " to " << dest_path.value(); |
159 base::DeleteFile(minidump_path, false); | 161 base::DeleteFile(minidump_path, false); |
160 return; | 162 return; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 BrowserThread::FILE, FROM_HERE, | 246 BrowserThread::FILE, FROM_HERE, |
245 base::Bind(&CrashDumpManager::ProcessMinidump, | 247 base::Bind(&CrashDumpManager::ProcessMinidump, |
246 minidump_path, | 248 minidump_path, |
247 pid, | 249 pid, |
248 process_type, | 250 process_type, |
249 termination_status, | 251 termination_status, |
250 app_state)); | 252 app_state)); |
251 } | 253 } |
252 | 254 |
253 } // namespace breakpad | 255 } // namespace breakpad |
OLD | NEW |