import multiple custom bsod

This commit is contained in:
Julian Freeman
2025-11-26 09:58:09 -04:00
parent 936c58dcc8
commit 1ad180a413
2 changed files with 63 additions and 35 deletions

View File

@@ -7,12 +7,14 @@
use serde::Serialize;
use sysinfo::{System, Disks};
use wmi::{COMLibrary, WMIConnection};
use std::{fs, ops::Deref};
use std::fs;
use std::path::Path;
use tauri::Emitter;
use chrono::{Duration, FixedOffset, Local, NaiveDate, TimeZone, DateTime};
// 只引入 minidump 基础库
use minidump::{Minidump, MinidumpException, MinidumpSystemInfo};
// [新增] 引入 Deref 用于泛型约束
use std::ops::Deref;
// --- 1. 数据结构 (保持不变) ---
@@ -188,8 +190,10 @@ fn translate_bugcheck_u32(code: u32) -> (String, String) {
}
}
// [新增] 抽离公共分析逻辑
fn analyze_dump_data<T: Deref<Target = [u8]>>(dump: Minidump<T>) -> Result<BsodAnalysisReport, String> {
// [修复] 抽离公共分析逻辑,使用泛型 T 适配不同数据源
fn analyze_dump_data<T>(dump: Minidump<T>) -> Result<BsodAnalysisReport, String>
where T: Deref<Target = [u8]>
{
let exception_stream = dump.get_stream::<MinidumpException>()
.map_err(|_| "无法找到异常信息流 (No Exception Stream),可能是非标准 Dump 文件。".to_string())?;