import multiple custom bsod
This commit is contained in:
@@ -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())?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user