Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2540)

Side by Side Diff: components/crash/content/app/breakpad_linux.cc

Issue 2556523002: Add package field to Android crash reports (Closed)
Patch Set: don't alloc Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 // For linux_syscall_support.h. This makes it safe to call embedded system 5 // For linux_syscall_support.h. This makes it safe to call embedded system
6 // calls when in seccomp mode. 6 // calls when in seccomp mode.
7 7
8 #include "components/crash/content/app/breakpad_linux.h" 8 #include "components/crash/content/app/breakpad_linux.h"
9 9
10 #include <fcntl.h> 10 #include <fcntl.h>
(...skipping 543 matching lines...) Expand 10 before | Expand all | Expand 10 after
554 554
555 AddString(filename_msg); 555 AddString(filename_msg);
556 AddString(g_sep); 556 AddString(g_sep);
557 AddItem(data, data_len); 557 AddItem(data, data_len);
558 AddString(g_sep); 558 AddString(g_sep);
559 AddItem(file_data, file_size); 559 AddItem(file_data, file_size);
560 Flush(); 560 Flush();
561 } 561 }
562 #endif // defined(OS_CHROMEOS) 562 #endif // defined(OS_CHROMEOS)
563 563
564 #if defined(OS_ANDROID)
565 // Writes the "package" field, which is in the format:
566 // $PACKAGE_NAME v$VERSION_CODE ($VERSION_NAME)
567 void WriteAndroidPackage(MimeWriter& writer,
568 base::android::BuildInfo* android_build_info) {
569 static const char package[] = "package";
570 // The actual size limits on packageId and versionName are quite generous.
571 // Limit to a reasonable size rather than allocating theoretical limits.
572 const int kMaxSize = 1024;
573 char buf[kMaxSize];
574
575 my_strlcpy(buf, android_build_info->package_name(), kMaxSize);
scottmg 2017/01/11 02:47:41 Comment here why it's not just using sprintf.
agrieve 2017/01/12 02:13:09 Done.
576 my_strlcat(buf, " v", kMaxSize - my_strlen(buf));
scottmg 2017/01/11 02:47:41 I believe strlcat and strlcpy normally take the fu
agrieve 2017/01/12 02:13:09 Aha, that's much nicer :)
577 my_strlcat(buf, android_build_info->package_version_code(),
578 kMaxSize - my_strlen(buf));
579 my_strlcat(buf, " (", kMaxSize - my_strlen(buf));
580 my_strlcat(buf, android_build_info->package_version_name(),
581 kMaxSize - my_strlen(buf));
582 my_strlcat(buf, ")", kMaxSize - my_strlen(buf));
583
584 writer.AddPairString(package, buf);
585 }
586 #endif // defined(OS_ANDROID)
587
564 void DumpProcess() { 588 void DumpProcess() {
565 if (g_breakpad) 589 if (g_breakpad)
566 g_breakpad->WriteMinidump(); 590 g_breakpad->WriteMinidump();
567 591
568 #if defined(OS_ANDROID) 592 #if defined(OS_ANDROID)
569 // If microdumps are enabled write also a microdump on the system log. 593 // If microdumps are enabled write also a microdump on the system log.
570 if (g_microdump) 594 if (g_microdump)
571 g_microdump->WriteMinidump(); 595 g_microdump->WriteMinidump();
572 #endif 596 #endif
573 } 597 }
(...skipping 1076 matching lines...) Expand 10 before | Expand all | Expand 10 after
1650 writer.AddBoundary(); 1674 writer.AddBoundary();
1651 writer.AddPairString(device, android_build_info->device()); 1675 writer.AddPairString(device, android_build_info->device());
1652 writer.AddBoundary(); 1676 writer.AddBoundary();
1653 writer.AddPairString(model, android_build_info->model()); 1677 writer.AddPairString(model, android_build_info->model());
1654 writer.AddBoundary(); 1678 writer.AddBoundary();
1655 writer.AddPairString(brand, android_build_info->brand()); 1679 writer.AddPairString(brand, android_build_info->brand());
1656 writer.AddBoundary(); 1680 writer.AddBoundary();
1657 writer.AddPairString(gms_core_version, 1681 writer.AddPairString(gms_core_version,
1658 android_build_info->gms_version_code()); 1682 android_build_info->gms_version_code());
1659 writer.AddBoundary(); 1683 writer.AddBoundary();
1684 WriteAndroidPackage(writer, android_build_info);
1685 writer.AddBoundary();
1660 if (android_build_info->java_exception_info() != nullptr) { 1686 if (android_build_info->java_exception_info() != nullptr) {
1661 writer.AddPairString(exception_info, 1687 writer.AddPairString(exception_info,
1662 android_build_info->java_exception_info()); 1688 android_build_info->java_exception_info());
1663 writer.AddBoundary(); 1689 writer.AddBoundary();
1664 } 1690 }
1665 #endif 1691 #endif
1666 writer.Flush(); 1692 writer.Flush();
1667 } 1693 }
1668 1694
1669 if (info.process_start_time > 0) { 1695 if (info.process_start_time > 0) {
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
1967 void SetNativeCodeTextAddrRange(uintptr_t start, uintptr_t end) { 1993 void SetNativeCodeTextAddrRange(uintptr_t start, uintptr_t end) {
1968 g_microdump_info.Get().SetMicrodumpInterestRange(start, end); 1994 g_microdump_info.Get().SetMicrodumpInterestRange(start, end);
1969 } 1995 }
1970 #endif // OS_ANDROID 1996 #endif // OS_ANDROID
1971 1997
1972 bool IsCrashReporterEnabled() { 1998 bool IsCrashReporterEnabled() {
1973 return g_is_crash_reporter_enabled; 1999 return g_is_crash_reporter_enabled;
1974 } 2000 }
1975 2001
1976 } // namespace breakpad 2002 } // namespace breakpad
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698