mirror of
https://github.com/asherkin/accelerator.git
synced 2025-12-06 18:08:30 +00:00
Update breakpad version (#35)
* Update breakpad version * Remove win-2019 from CI
This commit is contained in:
parent
5e319ecdc3
commit
04a6eeeedb
7
.github/workflows/ci.yml
vendored
7
.github/workflows/ci.yml
vendored
@ -22,7 +22,7 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ 'ubuntu-22.04', 'ubuntu-latest', 'windows-2019', 'windows-latest' ]
|
||||
os: [ 'ubuntu-22.04', 'ubuntu-latest', 'windows-latest' ]
|
||||
include:
|
||||
# we need to ship ubuntu 22.04 because of glibc reasons
|
||||
- os: ubuntu-22.04
|
||||
@ -37,11 +37,6 @@ jobs:
|
||||
cxx: clang++
|
||||
upload: false
|
||||
upload-artifact-name: none
|
||||
- os: windows-2019
|
||||
cc: msvc
|
||||
cxx: msvc
|
||||
upload: false
|
||||
upload-artifact-name: none
|
||||
- os: windows-latest
|
||||
cc: msvc
|
||||
cxx: msvc
|
||||
|
||||
@ -558,24 +558,24 @@ class UploadThread: public IThread
|
||||
if (log) fflush(log);
|
||||
|
||||
auto debugFileDir = google_breakpad::DirName(debugFile);
|
||||
std::vector<string> debug_dirs{
|
||||
std::vector<std::string> debug_dirs{
|
||||
debugFileDir,
|
||||
debugFileDir + "/.debug",
|
||||
"/usr/lib/debug" + debugFileDir,
|
||||
};
|
||||
|
||||
std::ostringstream outputStream;
|
||||
google_breakpad::DumpOptions options(ALL_SYMBOL_DATA, true, true);
|
||||
google_breakpad::DumpOptions options(ALL_SYMBOL_DATA, true, true, true);
|
||||
|
||||
{
|
||||
StderrInhibitor stdrrInhibitor;
|
||||
|
||||
if (!WriteSymbolFile(debugFile, debugFile, "Linux", debug_dirs, options, outputStream)) {
|
||||
if (!WriteSymbolFile(debugFile, debugFile, debugFile, "Linux", debug_dirs, options, outputStream)) {
|
||||
outputStream.str("");
|
||||
outputStream.clear();
|
||||
|
||||
// Try again without debug dirs.
|
||||
if (!WriteSymbolFile(debugFile, debugFile, "Linux", {}, options, outputStream)) {
|
||||
if (!WriteSymbolFile(debugFile, debugFile, debugFile, "Linux", {}, options, outputStream)) {
|
||||
if (log) fprintf(log, "Failed to process symbol file\n");
|
||||
if (log) fflush(log);
|
||||
return false;
|
||||
@ -791,7 +791,7 @@ class UploadThread: public IThread
|
||||
std::string::size_type file_start = 0;
|
||||
if (slash != std::string::npos && (backslash == std::string::npos || slash > backslash)) {
|
||||
file_start = slash + 1;
|
||||
} else if (backslash != string::npos) {
|
||||
} else if (backslash != std::string::npos) {
|
||||
file_start = backslash + 1;
|
||||
}
|
||||
|
||||
|
||||
@ -9,10 +9,10 @@ Subject: [PATCH 1/5] Ignore invalid modules rather than bailing on the entire
|
||||
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
|
||||
index 83e5a868..a7d564f2 100644
|
||||
index 775f117c..066fd36f 100644
|
||||
--- a/src/processor/minidump.cc
|
||||
+++ b/src/processor/minidump.cc
|
||||
@@ -3195,7 +3195,7 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
@@ -3198,7 +3198,7 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
BPLOG(ERROR) << "MinidumpModuleList could not read required module "
|
||||
"auxiliary data for module " <<
|
||||
module_index << "/" << module_count;
|
||||
@ -21,7 +21,7 @@ index 83e5a868..a7d564f2 100644
|
||||
}
|
||||
|
||||
// It is safe to use module->code_file() after successfully calling
|
||||
@@ -3207,7 +3207,14 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
@@ -3210,7 +3210,14 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
BPLOG(ERROR) << "MinidumpModuleList found bad base address for module "
|
||||
<< module_index << "/" << module_count << ", "
|
||||
<< module.code_file();
|
||||
@ -37,7 +37,7 @@ index 83e5a868..a7d564f2 100644
|
||||
}
|
||||
|
||||
// Some minidumps have additional modules in the list that are duplicates.
|
||||
@@ -3234,7 +3241,7 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
@@ -3237,7 +3244,7 @@ bool MinidumpModuleList::Read(uint32_t expected_size) {
|
||||
<< module_index << "/" << module_count << ", "
|
||||
<< module.code_file() << ", " << HexString(base_address)
|
||||
<< "+" << HexString(module_size);
|
||||
|
||||
@ -12,18 +12,18 @@ diff --git a/src/common/linux/elf_symbols_to_module.cc b/src/common/linux/elf_sy
|
||||
index 70d50f89..f21460bf 100644
|
||||
--- a/src/common/linux/elf_symbols_to_module.cc
|
||||
+++ b/src/common/linux/elf_symbols_to_module.cc
|
||||
@@ -163,19 +163,28 @@ bool ELFSymbolsToModule(const uint8_t* symtab_section,
|
||||
@@ -164,19 +164,28 @@ bool ELFSymbolsToModule(const uint8_t* symtab_section,
|
||||
while(!iterator->at_end) {
|
||||
if (ELF32_ST_TYPE(iterator->info) == STT_FUNC &&
|
||||
iterator->shndx != SHN_UNDEF) {
|
||||
- auto ext = std::make_unique<Module::Extern>(iterator->value);
|
||||
- ext->name = SymbolString(iterator->name_offset, strings);
|
||||
+ string name = SymbolString(iterator->name_offset, strings);
|
||||
+ auto name = SymbolString(iterator->name_offset, strings);
|
||||
#if !defined(__ANDROID__) // Android NDK doesn't provide abi::__cxa_demangle.
|
||||
int status = 0;
|
||||
char* demangled =
|
||||
- abi::__cxa_demangle(ext->name.c_str(), NULL, NULL, &status);
|
||||
+ abi::__cxa_demangle(name.c_str(), NULL, NULL, &status);
|
||||
- abi::__cxa_demangle(ext->name.c_str(), nullptr, nullptr, &status);
|
||||
+ abi::__cxa_demangle(name, nullptr, nullptr, &status);
|
||||
if (demangled) {
|
||||
if (status == 0)
|
||||
- ext->name = demangled;
|
||||
|
||||
2
third_party/breakpad
vendored
2
third_party/breakpad
vendored
@ -1 +1 @@
|
||||
Subproject commit 255dbbd061a400e7a3f601e82a62e65058b39e5e
|
||||
Subproject commit baa562ba435b01bf887ee71427256c40da7dcc49
|
||||
Loading…
Reference in New Issue
Block a user