1. 打开任意一个java源文件,单击左边框边沿设置一个断点,然后右键该断点。
2.选中Thread,并Make Default,这样后续所有加的断点都支持多线程调试,然后Done。
3.下面以netty为例,快捷键Shift+F9调试代码,然后F7和F8快捷键结合,最终进入到SingleThreadEventExecutor.java文件,如下图代码处,
由于此函数马上开启一个新线程,为实现多线程调试,应该让新线程在启动后,在适当的地方停下来等我们进行单步调试,这里选择在新线程将要运行的第一行代码处,加了一个断点。
4.继续调试后,发现在创建新线程后,光标直接跳到了doStartThread()结束处,这时新线程已经启动,并且在第一行代码等我们。
5.开始切换线程调试,查看调试窗口,选择Debugger->Frames,当前我们仍处于main线程中,如下图,
点击下拉框,其中nioEventLoopGroup-3-1就是新开启的线程(可以事先查看下),选择该新线程,代码编辑界面马上跳到我们在新线程设置的断点处。
这样就顺利进行线程切换。
完。