From a36bcdabab7c61ced9517b79a808b8db083c8ca7 Mon Sep 17 00:00:00 2001
From: Gabriele Svelto
Date: Wed, 26 Oct 2022 16:54:58 +0200
Subject: [PATCH] Enable support for Windows/AArch64
---
README.md | 2 +-
tests/windows_minidump_writer.rs | 18 ++++++++++++++++--
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/README.md b/README.md
index dcdc4d6d..e767c0f5 100644
--- a/README.md
+++ b/README.md
@@ -148,7 +148,7 @@ fn write_minidump(crash_context: crash_context::CrashContext) {
`x86_64` | ✅ | ✅ | ⚠️ | ✅ | ✅ | ⭕️ |
`i686` | ✅ | ✅ | ❌ | ⚠️ | ❌ | ❌ | ⭕️ |
`arm` | ⚠️ | ⚠️ | ⚠️ | ⭕️ | ❌ | ❌ |
-`aarch64` | ⚠️ | ⚠️ | ⚠️ | ⭕️ | ✅ | ⭕️ |
+`aarch64` | ⚠️ | ⚠️ | ⚠️ | ✅ | ✅ | ⭕️ |
`mips` | ⭕️ | ⭕️ | ❌ | ❌ | ❌ | ❌ |
`mips64` | ⭕️ | ⭕️ | ❌ | ❌ | ❌ | ❌ |
`powerpc` | ⭕️ | ⭕️ | ❌ | ❌ | ❌ | ❌ |
diff --git a/tests/windows_minidump_writer.rs b/tests/windows_minidump_writer.rs
index 1ea04710..98db2fef 100644
--- a/tests/windows_minidump_writer.rs
+++ b/tests/windows_minidump_writer.rs
@@ -1,5 +1,6 @@
-#![cfg(all(target_os = "windows", target_arch = "x86_64"))]
+#![cfg(all(target_os = "windows"))]
+use cfg_if;
use minidump::{
CrashReason, Minidump, MinidumpBreakpadInfo, MinidumpMemoryList, MinidumpSystemInfo,
MinidumpThreadList,
@@ -17,6 +18,18 @@ extern "system" {
pub(crate) fn GetCurrentThreadId() -> u32;
}
+fn get_target_cpu() -> minidump::system_info::Cpu {
+ cfg_if::cfg_if! {
+ if #[cfg(target_arch = "aarch64")] {
+ minidump::system_info::Cpu::Arm64
+ } else if #[cfg(target_arch = "x86")] {
+ minidump::system_info::Cpu::X86
+ } else if #[cfg(target_arch = "x86_64")] {
+ minidump::system_info::Cpu::X86_64
+ }
+ }
+}
+
fn get_crash_reason<'a, T: std::ops::Deref + 'a>(
md: &Minidump<'a, T>,
) -> CrashReason {
@@ -25,7 +38,8 @@ fn get_crash_reason<'a, T: std::ops::Deref + 'a>(
exc.get_crash_reason(
minidump::system_info::Os::Windows,
- minidump::system_info::Cpu::X86_64,
+ // This is currently ignored, but it might be used in the future
+ get_target_cpu(),
)
}