From 6cdc68d56628119482cd42f4a574d8c7edf88843 Mon Sep 17 00:00:00 2001 From: "caitkp@chromium.org" Date: Fri, 1 Aug 2014 23:18:55 +0000 Subject: [PATCH] Add more detail to Chrome ELF crash reports BUG=370153 Review URL: https://codereview.chromium.org/434143002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@287116 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome_elf/breakpad.cc | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/chrome_elf/breakpad.cc b/chrome_elf/breakpad.cc index 4c20324b2081b5..4eeb129f9e3b40 100644 --- a/chrome_elf/breakpad.cc +++ b/chrome_elf/breakpad.cc @@ -23,6 +23,8 @@ const wchar_t kBreakpadVersionEntry[] = L"ver"; const wchar_t kBreakpadProdEntry[] = L"prod"; const wchar_t kBreakpadPlatformEntry[] = L"plat"; const wchar_t kBreakpadPlatformWin32[] = L"Win32"; +const wchar_t kBreakpadProcessEntry[] = L"ptype"; +const wchar_t kBreakpadChannelEntry[] = L"channel"; // The protocol for connecting to the out-of-process Breakpad crash // reporter is different for x86-32 and x86-64: the message sizes @@ -37,14 +39,27 @@ const wchar_t kNoErrorDialogs[] = L"noerrdialogs"; const wchar_t kChromeHeadless[] = L"CHROME_HEADLESS"; google_breakpad::CustomClientInfo* GetCustomInfo() { + base::string16 process = IsNonBrowserProcess() ? L"renderer" : L"browser"; + + wchar_t exe_path[MAX_PATH] = {}; + base::string16 channel; + if (GetModuleFileName(NULL, exe_path, arraysize(exe_path)) && + IsCanary(exe_path)) { + channel = L"canary"; + } + static google_breakpad::CustomInfoEntry ver_entry( kBreakpadVersionEntry, TEXT(CHROME_VERSION_STRING)); static google_breakpad::CustomInfoEntry prod_entry( kBreakpadProdEntry, kBreakpadProductName); static google_breakpad::CustomInfoEntry plat_entry( kBreakpadPlatformEntry, kBreakpadPlatformWin32); + static google_breakpad::CustomInfoEntry proc_entry( + kBreakpadProcessEntry, process.c_str()); + static google_breakpad::CustomInfoEntry channel_entry( + kBreakpadChannelEntry, channel.c_str()); static google_breakpad::CustomInfoEntry entries[] = { - ver_entry, prod_entry, plat_entry }; + ver_entry, prod_entry, plat_entry, proc_entry, channel_entry}; static google_breakpad::CustomClientInfo custom_info = { entries, arraysize(entries) }; return &custom_info;