1

我在 win 11 上的应用程序有问题。

由于某种原因,在运行我的应用程序的 win10 版本时,minidump 崩溃文件中没有需要的信息。使用 minidump_dump 工具我发现,在 minidump 文件中,主模块没有 debug_id 和 pdb_file 信息。奇怪的是,在运行win32版本或从Visual Studio运行应用程序并成功crash(对于这个版本crash有需要的信息)后,win10版本的crash变成了需要的信息。这一直持续到重新启动计算机。

我们使用 dbghelp.dll 库,方式如下(这不是全部代码,只是一些操作):

dbgLibrary = LoadLibraryW(L"dbghelp.dll");
LPMINIDUMPWRITEDUMP pfnMiniDumpWriteDump =
                (LPMINIDUMPWRITEDUMP)GetProcAddress(dbgLibrary, "MiniDumpWriteDump");
pfnMiniDumpWriteDump(GetCurrentProcess(), GetCurrentProcessId(), file, MiniDumpNormal,
                &exceptionInformation, NULL, &callbackInformation);

我们在这部分没有任何特定于平台的代码(对于win10和win11,此代码相同),但由于某种原因,在win11上此代码不起作用。我会很高兴有任何关于为什么会发生这种情况的信息和想法。win10 和 win11 的唯一区别是 dbghelp.dll 的版本,但是这个库的代码没有开放,所以我不知道为什么会发生这种情况。

这里 minidump_dump 分析有无所需信息的崩溃:

  • 没有:
module[0]
MDRawModule
base_of_image = 0xd50000
size_of_image = 0x4142000
checksum = 0x0
time_date_stamp = 0x61dfa00e 2022-01-13 03:44:14
module_name_rva = 0x5fc8
version_info.signature = 0x0
version_info.struct_version = 0x0
version_info.file_version = 0x0:0x0
version_info.product_version = 0x0:0x0
version_info.file_flags_mask = 0x0
version_info.file_flags = 0x0
version_info.file_os = 0x0
version_info.file_type = 0x0
version_info.file_subtype = 0x0
version_info.file_date = 0x0:0x0
cv_record.data_size = 0
cv_record.rva = 0x0
misc_record.data_size = 0
misc_record.rva = 0x0
(code_file) = "C:\Program Files\WindowsApps\<application>\<application_name>.exe"
(code_identifier) = "61DFA00E4142000"
(cv_record) = (null)
(misc_record) = (null)
(debug_file) = ""
(debug_identifier) = ""
(version) = ""
  • 和:
module[0]
MDRawModule
base_of_image = 0xbb0000
size_of_image = 0x4142000
checksum = 0x0
time_date_stamp = 0x61dfa00e 2022-01-13 03:44:14
module_name_rva = 0x5f98
version_info.signature = 0x0
version_info.struct_version = 0x0
version_info.file_version = 0x0:0x0
version_info.product_version = 0x0:0x0
version_info.file_flags_mask = 0x0
version_info.file_flags = 0x0
version_info.file_os = 0x0
version_info.file_type = 0x0
version_info.file_subtype = 0x0
version_info.file_date = 0x0:0x0
cv_record.data_size = 88
cv_record.rva = 0x1533e
misc_record.data_size = 0
misc_record.rva = 0x0
(code_file) = "C:\Program Files\WindowsApps\7458BE2C.<application>\<application_name>.exe"
(code_identifier) = "61DFA00E4142000"
(cv_record).cv_signature = 0x53445352
(cv_record).signature = 9a32be3a-0bb1-40ac-9633-3ab00e761eb1
(cv_record).age = 1
(cv_record).pdb_file_name = "C:\ba\tc\work\t\client\<application_name>Win10\Release\Win32\<application_name>.pdb"
(misc_record) = (null)
(debug_file) = "C:\ba\tc\work\t\client\<application_name>Win10\Release\Win32\<application_name>.pdb"
(debug_identifier) = "9A32BE3A0BB140AC96333AB00E761EB11"
(version) = ""
4

0 回答 0