提问人:yonutix 提问时间:9/5/2023 更新时间:9/5/2023 访问量:172
在 Visual Studio 中使用 gflags“Show loader snaps”
Using gflags "Show loader snaps" with Visual Studio
问:
我正在尝试在系统范围内设置“Show Loader Snaps”,以便在加载 dll 时查看详细日志,但我在输出控制台中没有看到任何其他日志。
'WindowsProject1.exe' (Win32): Unloaded 'C:\Windows\System32\rpcrt4.dll'
'WindowsProject1.exe' (Win32): Unloaded 'C:\Windows\System32\oleaut32.dll'
这够了吗?“内核标志”下有相同的选项,但在该选项卡中,无法保存该选项。(虽然我在运行 gflags 时有管理员权限)。
有没有办法检查加载程序快照是否已启用?可能出了什么问题?
答:
2赞
Neitsa
9/5/2023
#1
没有提供系统范围 DLL 加载程序快照日志的机制。
“Show Loader Snaps”在系统范围内应用时,仅输出内核驱动程序加载和卸载的内容。(来源)
对于系统范围 (注册表或内核标志) ,此标志显示有关驱动程序加载和卸载操作的信息。
因此,需要附加到系统的内核调试器才能查看驱动程序的加载和卸载,但它不适用于 DLL。
另一方面,它按进程工作:
对于每个进程 (映像文件) ,此标志显示有关加载和卸载 DLL 的信息。
如文档中所述,它适用于单个进程。在:gflags
转到“图像文件”选项卡并输入可执行文件的名称(不是完整路径,只是可执行文件的名称,例如)。
foo.exe
按键。
tab
选中“show loader snaps”复选框。
使用调试器启动该过程。
有关 Visual Studio,你将在窗格中看到输出:Concerning Visual Studio, you'll see the output in the pane:Output
'Test.exe' (Win32): Loaded 'G:\CPP\Test\x64\Debug\Test.exe'. Symbols loaded.
'Test.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Symbols loaded.
23ac:01f4 @ 610683718 - LdrpInitializeProcess - INFO: Beginning execution of Test.exe (G:\CPP\Test\x64\Debug\Test.exe)
Current directory: G:\CPP\Test\
Package directories: (null)
23ac:01f4 @ 610683718 - LdrLoadDll - ENTER: DLL name: KERNEL32.DLL
23ac:01f4 @ 610683718 - LdrpLoadDllInternal - ENTER: DLL name: KERNEL32.DLL
23ac:01f4 @ 610683718 - LdrpFindKnownDll - ENTER: DLL name: KERNEL32.DLL
23ac:01f4 @ 610683718 - LdrpFindKnownDll - RETURN: Status: 0x00000000
23ac:01f4 @ 610683718 - LdrpMinimalMapModule - ENTER: DLL name: C:\WINDOWS\System32\KERNEL32.DLL
'Test.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Symbols loaded.
23ac:01f4 @ 610683781 - LdrpMinimalMapModule - RETURN: Status: 0x00000000
23ac:01f4 @ 610683781 - LdrpPreprocessDllName - INFO: DLL api-ms-win-core-rtlsupport-l1-1-0.dll was redirected to C:\WINDOWS\SYSTEM32\ntdll.dll by API set
23ac:01f4 @ 610683781 - LdrpFindKnownDll - ENTER: DLL name: KERNELBASE.dll
23ac:01f4 @ 610683781 - LdrpFindKnownDll - RETURN: Status: 0x00000000
23ac:01f4 @ 610683781 - LdrpMinimalMapModule - ENTER: DLL name: C:\WINDOWS\System32\KERNELBASE.dll
'Test.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Symbols loaded.
...
评论