summaryrefslogtreecommitdiffstats
path: root/toolkit/crashreporter/breakpad-client
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/crashreporter/breakpad-client')
-rw-r--r--toolkit/crashreporter/breakpad-client/linux/crash_generation/client_info.h12
-rw-r--r--toolkit/crashreporter/breakpad-client/linux/crash_generation/crash_generation_server.cc11
-rw-r--r--toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc6
3 files changed, 16 insertions, 13 deletions
diff --git a/toolkit/crashreporter/breakpad-client/linux/crash_generation/client_info.h b/toolkit/crashreporter/breakpad-client/linux/crash_generation/client_info.h
index 3de2606b7b..80b70b045f 100644
--- a/toolkit/crashreporter/breakpad-client/linux/crash_generation/client_info.h
+++ b/toolkit/crashreporter/breakpad-client/linux/crash_generation/client_info.h
@@ -30,6 +30,8 @@
#ifndef CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
#define CLIENT_LINUX_CRASH_GENERATION_CLIENT_INFO_H_
+#include <sys/types.h>
+
namespace google_breakpad {
class CrashGenerationServer;
@@ -42,13 +44,13 @@ class ClientInfo {
CrashGenerationServer* crash_server() const { return crash_server_; }
pid_t pid() const { return pid_; }
- void set_error_msg(nsCString &error_msg) {
+ void set_error_msg(char *error_msg) {
had_error_ = true;
error_msg_ = error_msg;
}
- const nsCString* error_msg() const {
- return &error_msg_;
+ const char* error_msg() const {
+ return error_msg_;
}
bool had_error() const {
@@ -59,8 +61,8 @@ class ClientInfo {
CrashGenerationServer* crash_server_;
pid_t pid_;
bool had_error_ = false;
- nsCString error_msg_; // Possible error message of the minidumper in
- // case there was an error during dumping
+ char* error_msg_ = nullptr; // Possible error message of the minidumper in
+ // case there was an error during dumping
};
}
diff --git a/toolkit/crashreporter/breakpad-client/linux/crash_generation/crash_generation_server.cc b/toolkit/crashreporter/breakpad-client/linux/crash_generation/crash_generation_server.cc
index 58baa31d10..35e3e0f80c 100644
--- a/toolkit/crashreporter/breakpad-client/linux/crash_generation/crash_generation_server.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/crash_generation/crash_generation_server.cc
@@ -41,8 +41,6 @@
#include <vector>
-#include "nsThreadUtils.h"
-
#include "linux/crash_generation/crash_generation_server.h"
#include "linux/crash_generation/client_info.h"
#include "linux/handler/exception_handler.h"
@@ -54,7 +52,6 @@
#if defined(MOZ_OXIDIZED_BREAKPAD)
# include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
# include <sys/signalfd.h>
-# include "nsString.h"
#endif
static const char kCommandQuit = 'x';
@@ -275,7 +272,7 @@ CrashGenerationServer::ClientEvent(short revents)
#if defined(MOZ_OXIDIZED_BREAKPAD)
ExceptionHandler::CrashContext* breakpad_cc =
reinterpret_cast<ExceptionHandler::CrashContext*>(crash_context);
- nsCString error_msg;
+ char* error_msg = nullptr;
siginfo_t& si = breakpad_cc->siginfo;
signalfd_siginfo signalfd_si = {};
signalfd_si.ssi_signo = si.si_signo;
@@ -330,6 +327,11 @@ CrashGenerationServer::ClientEvent(short revents)
exit_callback_(exit_context_, info);
}
+ info.set_error_msg(nullptr);
+ if (error_msg) {
+ free_minidump_error_msg(error_msg);
+ }
+
return true;
}
@@ -375,7 +377,6 @@ CrashGenerationServer::MakeMinidumpFilename(string& outFilename)
void*
CrashGenerationServer::ThreadMain(void *arg)
{
- NS_SetCurrentThreadName("Breakpad Server");
reinterpret_cast<CrashGenerationServer*>(arg)->Run();
return NULL;
}
diff --git a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
index 92a0443d79..efb97c00cb 100644
--- a/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
+++ b/toolkit/crashreporter/breakpad-client/linux/handler/exception_handler.cc
@@ -97,7 +97,6 @@
#include "common/linux/eintr_wrapper.h"
#include "third_party/lss/linux_syscall_support.h"
#if defined(MOZ_OXIDIZED_BREAKPAD)
-#include "nsString.h"
#include "mozilla/toolkit/crashreporter/rust_minidump_writer_linux_ffi_generated.h"
#endif
@@ -854,9 +853,10 @@ bool ExceptionHandler::WriteMinidumpForChild(pid_t child,
MinidumpDescriptor descriptor(dump_path);
descriptor.UpdatePath();
#if defined(MOZ_OXIDIZED_BREAKPAD)
- nsCString error_msg;
- if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread, &error_msg))
+ char* error_msg;
+ if (!write_minidump_linux(descriptor.path(), child, child_blamed_thread, &error_msg)) {
return false;
+ }
#else
if (!google_breakpad::WriteMinidump(descriptor.path(),
child,