如何在加载任何链接的DLL之前停止程序?如何在程序执行开始时设置断点
我试图设置LoadLibraryExW
功能在Break At Function
调试选项,它会停止运行的功能,但在此之前,我已经在Visual Studio中的输出窗口如下:
'test.exe': Loaded 'C:\Windows\System32\ntdll.dll', Symbols loaded (source information stripped). 'test.exe': Loaded 'C:\Windows\System32\kernel32.dll', Symbols loaded (source information stripped). 'test.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Symbols loaded (source information stripped). 'test.exe': Loaded 'C:\Windows\System32\uxtheme.dll', Symbols loaded (source information stripped). 'test.exe': Loaded 'C:\Windows\System32\msvcrt.dll', Symbols loaded (source information stripped). ---- plus about 30 DLLs ---
所以,我怎么能停止在加载ntdll.dll
之前在调试器中编程?好吧,不要在加载之前,而是在执行任何DllMain
函数之前以及初始化任何静态对象之前。
我已经试过这个,并且Process Explorer显示我已经在这个过程中分配了大约30个GDI对象。但在这一刻,这是我能得到的最好的。 – 2011-04-08 08:04:01
您可以使用Windows Debugger Kit中的GFlags工具自动为您自动编辑注册表。可以在http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 的Windows调试工具中找到它。它还包含许多其他有用的调试工具,包括WinDbg,免费从Microsoft获得。 – StarPilot 2012-11-28 21:33:54