summaryrefslogtreecommitdiffstats
path: root/toolkit/crashreporter/mozannotation_server/src/errors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/crashreporter/mozannotation_server/src/errors.rs')
-rw-r--r--toolkit/crashreporter/mozannotation_server/src/errors.rs74
1 files changed, 5 insertions, 69 deletions
diff --git a/toolkit/crashreporter/mozannotation_server/src/errors.rs b/toolkit/crashreporter/mozannotation_server/src/errors.rs
index 037d432e5e..b8103ad4e4 100644
--- a/toolkit/crashreporter/mozannotation_server/src/errors.rs
+++ b/toolkit/crashreporter/mozannotation_server/src/errors.rs
@@ -5,77 +5,13 @@
use thiserror::Error;
#[derive(Debug, Error)]
-pub enum RetrievalError {
- #[error("The process handle/PID was invalid")]
- InvalidProcessHandle,
- #[error("Could not find the address of the annotations vector")]
- AnnotationTableNotFound(#[from] FindAnnotationsAddressError),
+pub enum AnnotationsRetrievalError {
+ #[error("Address was out of bounds")]
+ InvalidAddress,
#[error("Corrupt or wrong annotation table")]
InvalidAnnotationTable,
#[error("The data read from the target process is invalid")]
InvalidData,
- #[cfg(any(target_os = "linux", target_os = "android"))]
- #[error("Could not attach to the target process")]
- AttachError(#[from] PtraceError),
- #[error("Could not read from the target process address space")]
- ReadFromProcessError(#[from] ReadError),
- #[error("waitpid() failed when attaching to the process")]
- WaitPidError,
-}
-
-#[derive(Debug, Error)]
-pub enum FindAnnotationsAddressError {
- #[error("Could not convert address {0}")]
- ConvertAddressError(#[from] std::num::TryFromIntError),
- #[error("goblin failed to parse a module")]
- GoblinError(#[from] goblin::error::Error),
- #[error("Address was out of bounds")]
- InvalidAddress,
- #[error("IO error for file {0}")]
- IOError(#[from] std::io::Error),
- #[error("Could not find the address of the annotations vector")]
- NotFound,
- #[error("Could not parse address {0}")]
- ParseAddressError(#[from] std::num::ParseIntError),
- #[error("Could not parse a line in /proc/<pid>/maps")]
- ProcMapsParseError,
- #[cfg(any(target_os = "linux", target_os = "android"))]
- #[error("Program header was not found")]
- ProgramHeaderNotFound,
- #[cfg(target_os = "windows")]
- #[error("Section was not found")]
- SectionNotFound,
- #[cfg(target_os = "windows")]
- #[error("Cannot enumerate the target process's modules")]
- EnumProcessModulesError,
- #[error("Could not read memory from the target process")]
- ReadError(#[from] ReadError),
- #[cfg(target_os = "macos")]
- #[error("Failure when requesting the task information")]
- TaskInfoError,
- #[cfg(target_os = "macos")]
- #[error("The task dyld information format is unknown or invalid")]
- ImageFormatError,
-}
-
-#[derive(Debug, Error)]
-pub enum ReadError {
- #[cfg(any(target_os = "linux", target_os = "android"))]
- #[error("ptrace-specific error")]
- PtraceError(#[from] PtraceError),
- #[cfg(target_os = "windows")]
- #[error("ReadProcessMemory failed")]
- ReadProcessMemoryError,
- #[cfg(target_os = "macos")]
- #[error("mach call failed")]
- MachError,
-}
-
-#[cfg(any(target_os = "linux", target_os = "android"))]
-#[derive(Debug, Error)]
-pub enum PtraceError {
- #[error("Could not read from the target process address space")]
- ReadError(#[source] std::io::Error),
- #[error("Could not trace the process")]
- TraceError(#[source] std::io::Error),
+ #[error("Could not execute operation on the target process")]
+ ProcessReaderError(#[from] process_reader::error::ProcessReaderError),
}