Intellij断点调试技巧 短命女 2022-09-10 06:26 173阅读 0赞 ## 设置断点 ## 选定要设置断点的代码行,在行号的区域后面单击鼠标左键即可。 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16] ## 开启调试会话 ## 在代码中右键选择Debug,开始进入调试。 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 1] 点击最上方红色方框指向的小虫子,也会进入断点模式:![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 2] ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 3] IDE下方出现 Debug 视图,红色的箭头指向的是现在调试程序停留的代码行。 红色箭头悬停的区域是程序的方法调用栈区,在这个区域中显示了程序执行到断点处所调用过的所用方法,**越下面的方法被调用的越早**。 ## 单步调试 ## ### step over ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16] 点击红色方框中的按钮,程序向下执行一行。如果当前行有方法调用,这个方法将被执行完毕返回,然后到下一行。 ### step into ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 1] 点击红色方框中的按钮,程序向下执行一行。如果该行有自定义方法,则运行进入自定义方法(不会进入官方类库的方法)。 ### Force step into ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_19_color_FFFFFF_t_70_g_se_x_16] 该按钮在调试的时候能进入任何方法。 ### step out ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 2] 如果在调试的时候你进入了一个方法(如f2()),并觉得该方法没有问题,你就可以使用stepout跳出该方法,返回到该方法被调用处的下一行语句。值得注意的是,此时该方法已执行完毕。 ### Drop frame ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 4] 点击该按钮后,将返回到当前方法的调用处(如上图,程序会回到main()中)重新执行,并且所有上下文变量的值也回到那个时候。 只要调用链中还有上级方法,可以跳到其中的任何一个方法。 ## 高级调试 ## ### 跨断点调试 ### 当程序中有多个断点时,想移动到下一个断点,点击如下图红色方框中的按钮,程序将运行到下一个断点处的代码。如果后面代码没有断点,再次点击该按钮将会执行完程序。 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 3] ### 查看断点 ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 4] 点击红色方框中的按钮,可以查看曾经设置过的断点并可设置断点的一些属性。 ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 5] 箭头1指向的是曾经设置过的断点,箭头2可以设置条件断点(满足某个条件的时候,暂停程序的执行,如 i==33)。 结束调试后,建议在箭头1处把所设的断点删除(选择要删除的断点后,点击上方的红色减号)。 ### 设置变量值 ### ![在这里插入图片描述][watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 6] 调试开始后,在红箭头指向的区域可以给指定的变量赋值(鼠标左键选择变量,右键弹出菜单选择setValue…)。这个功能可以更加快速的检测你的条件语句和循环语句。 [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16]: /images/20220829/5c4c78bd5f6e4b2fa69b7a0b6dfbfd47.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 1]: /images/20220829/ac5fffbb93f3425b832e715c1eedc362.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 2]: /images/20220829/1b41043b5831424fba3cc440e9dcf4e3.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 3]: /images/20220829/b778099ef6334c43baf3483fdb941e2d.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16]: /images/20220829/12049505409640179c881d66b92f9ddb.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 1]: /images/20220829/1ceb013a635b42c983764888d4a81035.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_19_color_FFFFFF_t_70_g_se_x_16]: /images/20220829/8a875c6704ea45a7bab036175b9a95e5.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 2]: /images/20220829/1cae4241a2934d1cbde8ade5ebeca3b6.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 4]: /images/20220829/41884ee18e184a73a6600c8e0c760eea.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 3]: /images/20220829/5cac4af2356a4568be4b4f2253ae42da.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_18_color_FFFFFF_t_70_g_se_x_16 4]: /images/20220829/46081587d0494287935e83d40b176281.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 5]: /images/20220829/1bc8ad229d494f529fb2904da805b013.png [watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5qKB5LqR5Lqu_size_20_color_FFFFFF_t_70_g_se_x_16 6]: /images/20220829/dfedf721f1784e758f9facf30bb41251.png
还没有评论,来说两句吧...