我有一个应用MyApp.exe
。此应用使用程序集MyAssembly1.dll
,它自身引用MyAssembly2.dll
。在MyAssembly2
内,我有一个类MyClass
,其方法为MyMethod
。用户经过多个对话框等后调用此方法。
如果我从Windbg中启动此应用程序,是否有某种方法可以在此方法上设置断点?问题是我不知道CLR何时加载MyAssembly2
这个方法得到了JITted?
答案 0 :(得分:4)
关于BPMD msdn的文档说
如果尚未加载指定的模块和方法,则此命令会在创建断点之前等待加载模块和实时(JIT)编译的通知。
所以你应该可以做到!bpmd MyAssembly2.dll MyClass.MyMethod即使MyAssembly2.dll尚未加载,加载调试器时也会放入断点。
答案 1 :(得分:1)
您也可以运行!sosex.mbm,或者,如果您知道源文件/行号,请执行!sosex.mbp。您甚至可以在初始断点处运行这些命令。没有必要等待加载CLR。 SOSEX将处理必要的通知,以便在jitted代码可用时设置断点。
免费