上篇博文中给大家分享了使用Windbg分析线程阻塞问题:
Windbg程序调试系列3-线程阻塞问题
本篇中我们继续,跟大家分享附加进程实时调试-Live Debugging。
先说一下使用Windbg附加进程实时调试的应用场景和注意事项:
应用场景:
集成测试环境,影响异常后,分析异常和线程上下文的执行堆栈、参数情况;
生产环境:短时间内调试程序异常,查看异常上下文和参数,但是调试时间不能太久。
注意事项:附加进程调试会阻塞请求,调试后新的请求被阻塞住,前端调用受影响,因此要谨慎、权衡利弊,开发测试环境可以,生产环境要谨慎。
附加进程实时调试的套路:
F6 Attache进程
加载SOS, .loadby sos clr
启用异常捕获 sxe clr
运行,捕获&查看异常 g !pe
查看异常所在线程堆栈!clrstack, 查看异常所在线程堆栈的参数和变量 !clrstack -a / !dso
禁用异常捕获 sxd clr
退出调试 qd
动手实操:
1. F6 Attache进程
打开Windbg,按下F6键,选择要调试的进程,支持输入进程ID:
2. 加载SOS, .loadby sos clr