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:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ 'ubuntu-22.04', 'ubuntu-latest', 'windows-2019', 'windows-latest' ]
|
os: [ 'ubuntu-22.04', 'ubuntu-latest', 'windows-latest' ]
|
||||||
include:
|
include:
|
||||||
# we need to ship ubuntu 22.04 because of glibc reasons
|
# we need to ship ubuntu 22.04 because of glibc reasons
|
||||||
- os: ubuntu-22.04
|
- os: ubuntu-22.04
|
||||||
@ -37,11 +37,6 @@ jobs:
|
|||||||
cxx: clang++
|
cxx: clang++
|
||||||
upload: false
|
upload: false
|
||||||
upload-artifact-name: none
|
upload-artifact-name: none
|
||||||
- os: windows-2019
|
|
||||||
cc: msvc
|
|
||||||
cxx: msvc
|
|
||||||
upload: false
|
|
||||||
upload-artifact-name: none
|
|
||||||
- os: windows-latest
|
- os: windows-latest
|
||||||
cc: msvc
|
cc: msvc
|
||||||
cxx: msvc
|
cxx: msvc
|
||||||
|
|||||||
@ -558,24 +558,24 @@ class UploadThread: public IThread
|
|||||||
if (log) fflush(log);
|
if (log) fflush(log);
|
||||||
|
|
||||||
auto debugFileDir = google_breakpad::DirName(debugFile);
|
auto debugFileDir = google_breakpad::DirName(debugFile);
|
||||||
std::vector<string> debug_dirs{
|
std::vector<std::string> debug_dirs{
|
||||||
debugFileDir,
|
debugFileDir,
|
||||||
debugFileDir + "/.debug",
|
debugFileDir + "/.debug",
|
||||||
"/usr/lib/debug" + debugFileDir,
|
"/usr/lib/debug" + debugFileDir,
|
||||||
};
|
};
|
||||||
|
|
||||||
std::ostringstream outputStream;
|
std::ostringstream outputStream;
|
||||||
google_breakpad::DumpOptions options(ALL_SYMBOL_DATA, true, true);
|
google_breakpad::DumpOptions options(ALL_SYMBOL_DATA, true, true, true);
|
||||||
|
|
||||||
{
|
{
|
||||||
StderrInhibitor stdrrInhibitor;
|
StderrInhibitor stdrrInhibitor;
|
||||||
|
|
||||||
if (!WriteSymbolFile(debugFile, debugFile, "Linux", debug_dirs, options, outputStream)) {
|
if (!WriteSymbolFile(debugFile, debugFile, debugFile, "Linux", debug_dirs, options, outputStream)) {
|
||||||
outputStream.str("");
|
outputStream.str("");
|
||||||
outputStream.clear();
|
outputStream.clear();
|
||||||
|
|
||||||
// Try again without debug dirs.
|
// 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) fprintf(log, "Failed to process symbol file\n");
|
||||||
if (log) fflush(log);
|
if (log) fflush(log);
|
||||||
return false;
|
return false;
|
||||||
@ -791,7 +791,7 @@ class UploadThread: public IThread
|
|||||||
std::string::size_type file_start = 0;
|
std::string::size_type file_start = 0;
|
||||||
if (slash != std::string::npos && (backslash == std::string::npos || slash > backslash)) {
|
if (slash != std::string::npos && (backslash == std::string::npos || slash > backslash)) {
|
||||||
file_start = slash + 1;
|
file_start = slash + 1;
|
||||||
} else if (backslash != string::npos) {
|
} else if (backslash != std::string::npos) {
|
||||||
file_start = backslash + 1;
|
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(-)
|
1 file changed, 10 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/processor/minidump.cc b/src/processor/minidump.cc
|
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
|
--- a/src/processor/minidump.cc
|
||||||
+++ b/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 "
|
BPLOG(ERROR) << "MinidumpModuleList could not read required module "
|
||||||
"auxiliary data for module " <<
|
"auxiliary data for module " <<
|
||||||
module_index << "/" << module_count;
|
module_index << "/" << module_count;
|
||||||
@ -21,7 +21,7 @@ index 83e5a868..a7d564f2 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
// It is safe to use module->code_file() after successfully calling
|
// 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 "
|
BPLOG(ERROR) << "MinidumpModuleList found bad base address for module "
|
||||||
<< module_index << "/" << module_count << ", "
|
<< module_index << "/" << module_count << ", "
|
||||||
<< module.code_file();
|
<< module.code_file();
|
||||||
@ -37,7 +37,7 @@ index 83e5a868..a7d564f2 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Some minidumps have additional modules in the list that are duplicates.
|
// 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_index << "/" << module_count << ", "
|
||||||
<< module.code_file() << ", " << HexString(base_address)
|
<< module.code_file() << ", " << HexString(base_address)
|
||||||
<< "+" << HexString(module_size);
|
<< "+" << 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
|
index 70d50f89..f21460bf 100644
|
||||||
--- a/src/common/linux/elf_symbols_to_module.cc
|
--- a/src/common/linux/elf_symbols_to_module.cc
|
||||||
+++ b/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) {
|
while(!iterator->at_end) {
|
||||||
if (ELF32_ST_TYPE(iterator->info) == STT_FUNC &&
|
if (ELF32_ST_TYPE(iterator->info) == STT_FUNC &&
|
||||||
iterator->shndx != SHN_UNDEF) {
|
iterator->shndx != SHN_UNDEF) {
|
||||||
- auto ext = std::make_unique<Module::Extern>(iterator->value);
|
- auto ext = std::make_unique<Module::Extern>(iterator->value);
|
||||||
- ext->name = SymbolString(iterator->name_offset, strings);
|
- 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.
|
#if !defined(__ANDROID__) // Android NDK doesn't provide abi::__cxa_demangle.
|
||||||
int status = 0;
|
int status = 0;
|
||||||
char* demangled =
|
char* demangled =
|
||||||
- abi::__cxa_demangle(ext->name.c_str(), NULL, NULL, &status);
|
- abi::__cxa_demangle(ext->name.c_str(), nullptr, nullptr, &status);
|
||||||
+ abi::__cxa_demangle(name.c_str(), NULL, NULL, &status);
|
+ abi::__cxa_demangle(name, nullptr, nullptr, &status);
|
||||||
if (demangled) {
|
if (demangled) {
|
||||||
if (status == 0)
|
if (status == 0)
|
||||||
- ext->name = demangled;
|
- 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