精华内容
下载资源
问答
  • java编程调试技巧

    2021-02-26 16:44:28
    1 多线程调试开发过多线程应用的朋友应该有体会,有些时候,为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下。在IDE里断点停下来的时候,可以切换到另外的线程中,跑其他的...

    1 多线程调试

    开发过多线程应用的朋友应该有体会,有些时候,为了观察多个线程间变量的不同状态,以及锁的获取等,就会想到在代码里加个断点debug一下。

    在IDE里断点停下来的时候,可以切换到另外的线程中,跑其他的代码,不会互相影响。当然,这里是有个开关的,在Eclipse里默认开启,

    但是在IntelliJ IDEA里默认是没有开启的。也就是说如果你在IDEA里代码里加断点,虽然一个线程的断了下来,但其他线程的已经执行过了。此处把线程的suspend设置成和Eclipse模式一样之后,也可以开始多线程应用的调试。简单设置可以直接在断点处,将suspend改成Thread

    c8697b284e1801330cb3b29cc0043255.png

    一个线程断下来之后,可以通过在线程窗口切换,到其它线程中继续运行。

    IntelliJ IDEA里在这儿切换

    720e30fcff3ceb7d30e2fedff5a697f4.png

    我们看到main线程和pool-1-thread-1这两个线程都处于RUNNING状态,切换到任何一个都可以继续运行。

    此时,就可以写一个多线程的应用,同时向ArryList这一类非线程安全的容器中存放内容,然后观察为什么他们是线程不安全的,会出现什么问题,生动又形象。

    PS: 这里顺道说一下,这就是为什么创建线程时建议起一个有意义的名字,至少是可以识别的名字,否则在这里都不能区分出哪个是自己的线程,想切换还麻烦。

    2 后退执行

    这里所说的后退执行,是有些时候我们在debug代码时,懒的每个方法都进入单步调试,就会出现你观察一个变量值的变化时,某个方法没跟进去,结果值就变了,不得不重来一次。

    依靠后退执行的功能,可以后退,就像下棋时悔棋那种功能一样。当然,这个后退招待的名字是我自己起的,在IDE里被称为Drop Frame。

    17aa10a826da48a1ac6ea0dc669699f6.png

    有了这个功能,我们在Drop 了当前这个Frame之后,已经改变的变量值不会恢复。比如你向当前调用方法里传入了一个List,并且在方法中向List里添加了内容,那在Drop到调用该方法的地方时,List不会恢复到之前的状态。

    但是在该方法再次被调用时,你可以观察List什么时候被改变的,至少不需要再重跑一遍程序了。甚至你可以一言不合就后退。

    3 条件断点

    为了调试代码,就需要在要观察变更的地方添加断点,然后小心翼翼的一步步执行。但是如果是在一个循环里,又或者该方法会被多线程同时调用到的时候,你小心的向下单步调试,发现没有你关心的内容,又从循环开始处跑下来,还是没你的内容,人就开始烦燥起来。

    其实,在添加断点的时候,我们可以为断点增加一定的条件,这样,在指定的条件满足时,断点才会生效。

    IntelliJ IDEA内,在断点上右击,会弹出如下图的条件框,输入指定的条件即可。

    936d08e3668c1d1834f5d105e3afde13.png

    有了条件断点,不相关,不感兴趣的代码就可以直接跳过了。

    4 片断代码

    这个没想好用什么名字来表述。有些时候在调试过程中,忽然想招待一段与此相关,但不在源文件中的代码来观察一下,辅助进行问题分析。此时你会停止程序,添加代码然后重新跑一次吗?

    在IDEA里有一个执行代码片断的功能,可以在当前代码的上下文内,执行你临时写的代码。

    例如,当前方法传入一个List,但这个方法里少一个你后面条件需要使用到的元素,此时你可以临时使用片断代码执行的功能,添加一个进去。

    注意,在IntelliJ IDEA里,这个上面红框,像个小计算器的按钮就是临时执行的功能,点击之后,会弹出按钮下方这个Evaluate Expression的框,输入代码,点击右下角的Evalute即可。返回值会显示在Result处。

    3e83081ad2a0f85dd075d9c781559a58.png

    这就就相当于临时改变了变量内容。

    然后,还可以调用对象的方法,执行功能,获取属性值等。

    fa5e1b6ad1ce4947f2d6d730928d04b2.png

    5 查看变量修改值

    每个IDE在调试代码时都提供了一个观察当前上下文变量值的窗口。其实除了查看之外,一些非final的基本类型,还可以直接在此处修改值。这样如果多次循环执行时,每次可以恢复到期望的值,不需要重启程序。

    5879dc50ca473c8ed4d199174959fde1.png

    展开全文
  • Matlab调试技巧

    2021-04-22 13:43:38
    Matlab的调试总体分为,直接调试和间接调试1.直接调试:(1)去掉句末的分号;(2)单独调试一个函数:将第一行的函数声明注释掉,并定义输入量,以脚本方式执行M 文件;(3)适当地方添加输出变量值的语句;(4)添加...

    Matlab的调试总体分为,直接调试和间接调试

    1.直接调试:

    (1)去掉句末的分号;

    (2)单独调试一个函数:将第一行的函数声明注释掉,并定义输入量,以脚本方式执行M 文件;

    (3)适当地方添加输出变量值的语句;

    (4)添加keyboard命令;

    2.工具调试:

    1.)以命令行为主的调试:

    (1)设置断点:

    ?dbstop in mfile:在文件名为mfile的M文件第一个可执行语句前设断点;

    ?dbstop in mfile at lineno:在mfile的第lineno行设断点;

    ?dbstop in mfile at subfun:当程序执行到子程序subfun时,暂时中止执行,并设断点;

    ?dbstop if error:遇到错误时,终止M文件运行,并停在错误行(不包括try...catch 语句中检测到的的错误,不能在错误后重新开始运行);

    ?dbstop if all error:遇到任何类型错误均停止(包括try...catch语句中检测到的的错误);

    ?dbstop if warning:程序可恢复运行;

    ?dbstop if caught error:当try...catch检测到运行时间错误是,停止M文件执行,可恢复运行;

    ?dbstop if naninf或dbstop if infnan

    (2)断点清除:

    ?dbclear all:清除所有M文件中的所有断点;

    ?dbclear all in mfile:清除文件名为mfile的文件中的所有断点;

    展开全文
  • Android调试技巧

    千次阅读 2021-12-04 16:49:15
    //inspect/ 就可以检测当前页面: 5、Debug高级技巧 1、崩溃后日志被覆盖 先看下Android studio中的日志面板 有时候崩溃了,日志很快被覆盖掉,可以通过这个restart按钮来重新打印日志。 2、debug打印log 有时候想...

    1、定位activity

    有时候看到页面但是不知道页面相关的代码在哪,可以用下面两种方法快速定位

    1、layout inspector
    在这里插入图片描述

    Layout inspector中会已窗口的形式展示当前的activity
    在这里插入图片描述

    2、adb
    可以通过adb打印当前显示的activity也有两种方式
    1、 adb -d shell dumpsys activity activities | grep mResumedActivity
    打印的log如下:

    hanking@C02CP0QNMD6V Noted-Android % adb -d shell dumpsys activity activities | grep mResumedActivity
        mResumedActivity: ActivityRecord{6938a87 u0 com.noted.noted/.view.activity.NoteAddActivity t6513}
    

    2、adb shell dumpsys activity top | grep ACTIVITY

    打印的log如下:

    hanking@C02CP0QNMD6V Noted-Android % adb shell dumpsys activity top | grep ACTIVITY
      ACTIVITY com.huawei.android.launcher/.unihome.UniHomeLauncher 6903383 pid=2496
      ACTIVITY com.noted.noted/.view.activity.NoteAddActivity 6938a87 pid=4180
    

    2、定位view

    1、view可以点击

    找到Android 中系统的View这个类,并且在这个类的接口OnclickListener中抽象方法onClick加一个断点
    加完断点后,点击view,会自动定位到当前view的点击方法中
    在这里插入图片描述

    2、view无法点击

    找到View这个类,并且在这onTouchEvent()方法前面加断点调试的时候会自动定位到当前触摸的view的onTouchEvent中
    在这里插入图片描述

    3、输出方法的调用栈

    在该方法中加如下log

    Log.d(TAG, Log.getStackTraceString(new Throwable())); 
    

    打印如下:

    2021-01-12 18:01:32.438 7902-7902/com.noted.noted D/MainActivity: java.lang.Throwable
            at com.noted.noted.MainActivity.onCreate(MainActivity.kt:88)
            at android.app.Activity.performCreate(Activity.java:8085)
            at android.app.Activity.performCreate(Activity.java:8073)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1320)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3870)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4076)
            at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
            at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
            at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2473)
            at android.os.Handler.dispatchMessage(Handler.java:110)
            at android.os.Looper.loop(Looper.java:219)
            at android.app.ActivityThread.main(ActivityThread.java:8349)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1055)
    

    4、查看h5页面的链接

    有时候要去看h5打开的页面链接是什么,这个时候去加log或者debug比较麻烦可以通过chrome来直接查看在浏览器中输入chrome://inspect/ 就可以检测当前页面:
    在这里插入图片描述

    5、Debug高级技巧

    1、崩溃后日志被覆盖
    先看下Android studio中的日志面板
    在这里插入图片描述

    有时候崩溃了,日志很快被覆盖掉,可以通过这个restart按钮来重新打印日志。

    2、debug打印log
    有时候想临时打印日志,如果添加log就要改代码然后重新运行比较麻烦,这个时候通过debug也可以打印出log,
    在这里插入图片描述

    这里是在普通的断点上面修改去掉suspend,然后加上evalute and log,log里面可以添加需要的内容。
    查看log的时候要通过
    在这里插入图片描述

    3、异常断点

    有时候会遇到程序崩溃但是又没有打印相关的崩溃日志,或者想要快速点位到崩溃的代码位置,这时候就可以通过异常断点来实现。
    异常断点的功能,就是在程序崩溃的时候断点到崩溃的位置。异常断点的设置也很简单
    在这里插入图片描述

    在Android开发中一般勾选java excption breakpoints就可以了,这样在程序崩溃的时候就会自动定位到崩溃的代码位置。
    如果你项目里面用到了dart也可以勾选上dart exception breakpoints。

    4、field值观察点
    如果要观察某个field变量值的变化情况,比如哪里赋值,哪里修改值等,可以通过这个断点
    在这里插入图片描述

    这里面可以选择field值初始化,field值获取,field值更改,看自己的需要来确定,默认是选择了field 值更改
    5、drop frame
    有时候debug太快错过了断点位置,一般这个时候会重新开始去debug,但是有了drop frame之后
    在这里插入图片描述

    就可以通过上图中的标志返回到上一步然后再次进入断点位置。
    6、断点分组
    debug时候经常会碰到debug进了之前打的断点里面,习惯性打完断点不删除,然后断点越来越多,这个时候就可以用断点分组的功能,可以把断点进行分组,不需要的断点可以整组的删除,很方便。
    在这里插入图片描述

    右键断点然后就可以根据上图来创建新分组或者移动到已有的分组。
    6、adb打开开发者选项中的选项

    # 此命令可操作布局边界的显示隐藏
    adb shell setprop debug.layout "true|false"
    
    # 此命令可操作过度绘制的显示隐藏
    adb shell getprop debug.hwui.overdraw "show|false"
    
    # 此命令可操作点按操作反馈的显示隐藏
    adb shell content insert --uri content://settings/system --bind name:s:show_touches --bind value:i:'1|0'
    
    # 此命令可操作显示触摸位置的显示隐藏
    adb shell content insert --uri content://settings/system --bind name:s:pointer_location --bind value:i:'1|0'
    

    7、adb一键连接Charles代理
    平常使用Charles代理时, 通常需要进入WiFi管理页面, 设置代理的服务器IP地址和端口号, 对于不常用的手机型号, 找到WiFi设置页可能都要花上一分钟, 再加上手输IP和端口号的时间, 整个连接体验还是比较差的 其实Android是有设置全局代理的能力的, 通过一个ADB命令即可连接代理, 再通过获取本机IP, 保存设置代理的端口, 便可体验上一键即可连接Charles的快感 具体设置代码如下

    # 设置代理
    adb shell settings put global http_proxy "$Ip:$Port"
    
    # 清除代理
    adb shell settings put global http_proxy :0
    adb shell settings delete global http_proxy
    adb shell settings delete global global_http_proxy_host
    adb shell settings delete global global_http_proxy_port
    

    release包断点调试

    其实能否加断点跟apk的构建类型无关,之所以印象中的release都没法断点调试,是因为release构建时没有加上

    debugable。
    android {
    
        buildTypes {
    
            release {
    
                debuggable true
    
            }
    
        }
    
    }
    

    同时,禁用Proguard的obfuscate功能,保留行号和sourcefile等源码信息。

    -keepattributes Signature
    
    -keepattributes SourceFile,LineNumberTable
    
    -renamesourcefileattribute SourceFile
    
    -dontobfuscate
    

    加上之后打出来的release包就能加断点调试了。

    参考

    1、https://developer.android.com/studio/debug

    展开全文
  • 《程序是调试出来的》嵌入式Keil5的调试技巧

    千次阅读 多人点赞 2021-12-10 22:58:35
    调试手段是教不会的,而是自己亲身实践出来的。那笔者撰写这篇文章的意义何在?一个人的发展始终会受限于自己的眼界,会当凌绝顶,一览众山小,笔者想要带你们览下群山风景,...本文主要结合Keil5工具讲一下调试技巧

    Keil5的调试技巧

        调试手段是教不会的,而是自己亲身实践出来的。那笔者撰写这篇文章的意义何在?一个人的发展始终会受限于自己的眼界,会当凌绝顶,一览众山小,笔者想要带你们览下群山风景,至于最终能不能攀登上来就看你们各自的本事和毅力,本文只是起到一个抛砖引玉的作用罢了。

        在笔者的经历中,用到Keil5调试的板子当属STM32单片机,当然,Ti芯片的集成调试环境CCS这方面也不错,当时的快速查看函数定义和显示函数调用层次比Keil5更胜一筹。本文主要结合Keil5工具讲一下调试技巧。当初学到一定阶段,苦于找不到问题之处及如何验证自己的想法而烦恼不已,后来偶得机缘,幸得良师指点,通宵调试加上后天实践才有了自己一些浅谈技巧,后来我有了想写下这篇博客的想法。

    1.注释//

        此方法简单且效果明显,十分的好用。当你不知道这段代码的作用,先别急着看源码,不如注释掉,编译下载到开发板看看效果,这一招注释//我屡试不爽虽谈不上高深,却胜在实用

      //Gui_DrawFont_GBK16(9,5,BLUE,GRAY0,"AD TEST: ");
    	Gui_DrawFont_GBK16(10,25,BLACK,GRAY0,"Light:");
        Gui_DrawFont_GBK16(115,25,BLUE,GRAY0,"%");
    	DisplayButtonUp(5,25,80,45); //x1,y1,x2,y2
    	DisplayButtonUp(85,27,125,45); //x1,y1,x2,y2 
    

    2.既然板子在手,不如软硬结合

        调试以笔者而言,简单分为软件调试和硬件调试及软硬结合调试

    • 硬件调试:简单下载程序,观察板子现象,常常与第一条技巧注释结合使用,如果程序写的是这个现象,下载板子上亦是这个现象,则程序正确。
    • 软件调试:在没有开发板得情况下,利用模拟环境(Keil5,CCS都具备)进行调试获得结果,脑补出板子现象。例如:假设板子LED是高电平点亮,软件中我们能知道这个值为1,则我们认定(脑补)LED灯点亮。
    • 软硬结合调试:程序在集成环境中(如Keil5/CCS)运行,同步测试开发板,常通过单步调试,“一步一程序,对应一步一现象”。现在笔者常用的便是此种细腻的方法,归根结底是此方法可简单使用,亦可加入各种调试手段融入其中,使其极具调试性,快速找到问题所在。———–>既然板子在手,不如软硬结合
    • 还有一点,算是笔者看程序的喜好,接手别人项目,看源码时,总喜欢在main函数中用单步调试来快速理清程序的脉络。毕竟“一动不动的看”容易打瞌睡,精神不集中。不如“当成调试程序的看源码”,看看程序一步步动起来,眼光也跟着动,慢慢的就’‘钻进去了’‘,专注起来。

    3.善用调试小工具

        Keil5集成开发环境中给了许多的调试工具查看窗口,其实调试这方面有很多值得注意的,但确实不是拿来直接说教的,任何教学手段不如你的亲身实践,带我学习嵌入式的大学老师,给我的建议就是“多折腾”

    3.1 这八个基本调试按键应该都很熟悉吧,如何不知道如何进入调试及这些按钮含义请自行百度,调试怎么能不动手呢。

    在这里插入图片描述

    3.2 断点的设置要学会,把断点设置到你认为当前问题所在之处,运行程序来验证

    在这里插入图片描述

    /*
    核心板的PA1连接到WIFI模块的A2
    状态:PC8指示灯闪烁提示系统运行
    屏幕上显示光照百分比
    屏幕接线:
    GND   电源地
    VCC   接5V或3.3v电源
    SCL   接PA5(SCL)
    SDA   接PA7(SDA)
    RES   接PB0
    DC    接PB1
    CS    接PA4 
    BL	  接PB10
    */
    
    #include "stm32f10x.h"  
    #include "main.h"      
    #include "delay.h"      
    #include "usart1.h"    
    #include "timer2.h"     
    #include "led.h"       
    #include "global.h"     
    #include "stdio.h"
    #include "math.h"
    #include "string.h"
    #include "LCD_calculate.h"
    #include "Lcd_Driver.h"
    #include "usart1.h"     
     #include "adc.h"
    
    int main(void) 
    {	
    	u8 adcx=0; 
    	char txt[20];
    	Delay_Init();                   //延时功能初始化              
    	Usart1_Init(9600);              //串口1功能初始化,波特率9600
    	LED_Init();	                    //LED初始化
      TIM2_Init();                    //定时10mm
    	Lcd_Init();
    	Lcd_Clear(RED);               //清屏
    	LCD_LED_SET;                    //通过IO控制背光亮	
    	Adc3_Init();
      Lsens_Init();
    	Gui_DrawFont_GBK16(9,5,BLUE,GRAY0,"AD TEST: ");
    	Gui_DrawFont_GBK16(10,25,BLACK,GRAY0,"Light:");
        Gui_DrawFont_GBK16(115,25,BLUE,GRAY0,"%");
    	DisplayButtonUp(5,25,80,45); //x1,y1,x2,y2
    	DisplayButtonUp(85,27,125,45); //x1,y1,x2,y2  //TO
    	while(1)                      
    	{		
    		if(timecount>30)	 //300毫秒刷新一次
    		{		
    				timecount=0;
    			  adcx=Lsens_Get_Val();
    				sprintf(txt, "%d", adcx);
    				Gui_DrawFont_GBK16(90,25,BLUE,GRAY0,txt);	
    				LED1=!LED1;
    		}		
    	}
    }
    
    

    3.3 会用窗口来观察变量的值变化(如图adcx),甚至可以观察数组每个元素的值变化,软硬结合调试的方式会发现变量的值在不断的变化。
    窗口的位置可以根据自己喜好移动和缩放

    在这里插入图片描述

    3.4其他的还有一些串口窗口也是我们经常调试程序的手段。
    我们常常用printf函数来打印一些信息来帮助我们调试。写C语言时,打印信息是直接显示在PC命令行窗口上,但注意在单片机调试中则不行,需要串口重定向,原理相同,具体代码请百度(STM32和MSP432的串口重定向代码不同)

    在这里插入图片描述

    4.休息一下,出去走走,理清程序思路

        当上面方法没有找到问题所在时,先不要着急,如果情绪变得越来越烦躁,建议即刻停下工作,出去走走,先让自己的脑子冷静下来---->脑袋很混乱,你发现和解决问题的能力会严重下降,不如出去看看风景!

    该文章为原创,转载请注明出处和作者

    展开全文
  • java 调试技巧

    2021-02-26 15:57:47
    远程调试1、远程调试是指,开发者可以通过网络连接在远端运行的JVM(例如服务器上运行的应用),并设置断点进行debug。2、JVM远程调试使用的协议是JDWP(Java Debug Wire Protocol)。3、使用idea远程调试应用的步骤1):...
  • 什么是bug? bug原本代表臭虫的意思 后来也指就是计算机程序上锁出现的缺陷 这还得从历史的一次事件中...一般是标识符名不存在或者拼写错误 运行时错误 借助我们学过的调试技巧调试,逐步定位问题,最终发现问题所在
  • 熟练的掌握调试技巧,可以帮助我们减少查找时间,快速定位问题。在 IDEA 中调试代码很方便,只要开启调试,在相应代码处使用断点,然后进行相应调试即可。正是因为只要掌握这几个功能,就可以调试代码,所以在很长一...
  • IntelliJ IDEA 调试技巧

    2021-06-18 16:18:50
    参考上图,在断点的位置,右击断点旁边的小红点,会出来一个界面,在Condition这里填入断点条件即可,这样调试时,就会自动停在i=10的位置 二、回到"上一步" 该技巧最适合特别复杂的方法套方法的场景,好不容易...
  • 在项目开发的过程中,不可避免的会遇到调试代码的情况。刚开始写代码时,我们想看具体执行到哪儿时,往往这么写:printf("***** Code is here! *****\n");随着调试信息的不断增多,我们项目中的printf()函数到处都是...
  • 前端开发中的调试技巧 骨灰级调试大师Alert 那还是互联网刚刚起步的时代,网页前端还主要以内容展示为主,浏览器脚本还只能为页面提供非常简单的辅助功能的时候。那个时候,网页主要运行在以IE6为主的浏览器中,JS的...
  • uniapp 调试技巧

    2021-05-06 22:13:34
    uniapp 调试技巧 1. 明明修改了代码,运行发现发面没有改变 – 重新运行 多参考官方文档 uniapp 官方文档 后续会补充其他调试技巧
  • 小驰笔记 HAL3架构下,不管是预览、拍照还是录像,上层都是送CaptureRequest给HAL,里面包含了参数和接收Image Buffer的handle,本文总结CaptureRequest一些常用的调试技巧。 文章目录 1 CaptureRequest包含几个...
  • DEBUG调试技巧总结

    2021-02-26 12:58:58
    java代码科学DEBUGDebug可以很好的帮助我们去检查程序中出现的问题,因此我们今天来总结一下debug的小技巧来帮助大家更快的解决作业中的问题一、断点断点就是程序运行到这个位置就会停下来,然后我们能观察此刻程序...
  • chrome DevTools 调试技巧

    2021-03-17 10:31:53
    Elements:检查和调整页面,调试DOM,调试CSS Network:调试请求,了解页面静态资源分布,网页性能检测 Console:调试js,查看log日志,交互式代码调试 Sources:调试js,进行断点调试代码 Application:查看...
  • VS2017实用调试技巧

    千次阅读 多人点赞 2021-08-29 09:47:26
    目录历史上的第一个Bug,什么是bug调试的重要性现实中的你是会是这样子的吗?调试的基本步骤1、发现程序错误的存在2、以隔离、消除等方式对错误进行定位3、确定错误产生的原因4、提出纠正错误的解决办法5、对程序...
  • gdb高级调试技巧

    2021-04-30 09:57:34
    1. 反向调试 gdb支持程序反向执行。 record让程序开始记录反向调试所必要的信息 rn :reverse next rc: reverse continue ,Continue program being debugged but runit in reverse record stop:停止记录
  • 实用调试技巧

    2021-06-16 23:50:47
    调试是什么? 调试(英语:Debugging / Debug),又称除错,是发现和减少计算机程序或电子仪器设备中程 序错误的一个过程。
  • 目录 一、概述 二、debug操作分析 1、打断点 2、运行debug模式 3、重新执行debug 4、让程序执行到下一次断点后暂停 5、让断点处的代码再加一行代码 6、停止debug程序 ...debug调试也叫断点调试 在程序
  • IDEA调试技巧

    千次阅读 多人点赞 2021-11-21 15:44:46
    大家周末愉快啊,今天分享一下IDEA 的高级调试技巧,来看下有多吃香,确实要比其他工具强太多了! 一、条件断点 循环中经常用到这个技巧,比如:遍历1个大List的过程中,想让断点停在某个特定值。 参考上图,在断点...
  • VS2017调试技巧总结

    2021-01-15 10:43:27
    一. 断点设置 1.条件断点:满足条件才会触发该断点 1)条件表达式 : 2)...例如可以改变函数的参数值,而不用改变之后,再重新调试 4.添加监视:添加对某个变量的关注,变成红色说明该变量被修改了 三.多线程调试
  • IDEA中的debug断点调试技巧 1:Show Execution Point (Alt + F10):如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行,即断点的位置; 2:Step Over (F8):步过,一行一行地往下走,如果这...
  • 前言上一篇文章 IntelliJ IDEA 高级调试之Stream Trace 算是 IntelliJ IDEA 高级调试技巧的开胃菜,很多小伙伴被这个小技巧征服。趁热打铁,今天给大家带来...
  • 如何写出好(易于调试)的代码 对于优秀的代码,具有以下特点: 代码运行正常 bug很少 效率高 可读性高 可维护性高 注释清晰 文档齐全 常见的调试技巧: 使用assert 尽量使用const 养成良好的编码风格 添加必要的...
  • vs2019调试技巧

    千次阅读 2020-12-30 17:30:16
    1.条件断点的妙用 #include <iostream> #include <stdio.h> int mian(int argc,char* argv[]) ... 1) 选择断点,右键,条件,可以设置断点的条件或者输出到打印的地方。... 2) 右键断点,快..
  • 来源微信公众号:JAVA日知录 在项目开发的时候我发现很多小伙伴能非常熟练的使用IDEA编写代码,但是对于IDEA调试技巧掌握的不是很好,只会F7、F8、F9等这些基本调试功能。而像一些...
  • IDEA debug断点调试技巧

    2021-02-05 10:13:37
    ④ 调试按钮:一共有8个按钮,调试的主要功能就对应着这几个按钮,鼠标悬停在按钮上可以查看对应的快捷键。在菜单栏Run里可以找到同样的对应的功能,如图1.4。 ⑤ 服务按钮:可以在这里关闭/启动服务,设置断点等...
  • pycharm Debug调试技巧

    2020-12-18 14:53:55
    Debug调试功能,是一项编程人员的重要技能。学会了Debug,可以知道程序的走向。 Debug的前世 在正式讲解之前,先来了解下 debug 这个词的由来,就像我们初学Python 时,先要了解下它历史的由来。 1937年,美国...
  • PYTHON 代码调试技巧

    2020-12-29 07:08:00
    Python代码调试技巧2012-5-3简介:Debug对于任何开发人员都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的bug。python提供了一系列debug的工具和包,可供我们选择。本文将主要阐述如何利用...
  • 不常见但是有用的 Chrome 调试技巧

    万次阅读 2021-08-08 00:59:59
    dom添加选中dom节点为全局变量方便需要调试多个dom的场景适用对dom有多次操作的场景添加选中dom节点为全局变量.pngforce node state (触发)状态调试dom的某个...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 148,863
精华内容 59,545
关键字:

调试技巧

友情链接: Giao-trinh-Access.zip