精华内容
下载资源
问答
  • 调试python不要再用print()了,甜甜的冰激凌调试工具来了

    大家好,我是Lex 喜欢欺负超人那个Lex

    擅长领域:python开发、网络安全渗透、Windows域控Exchange架构

    今日重点:

    调试python不要再用print()了,甜甜的冰激凌调试工具来了

    【建议收藏,然后下来一定操作一遍】

    事情是这样的

    望着窗外,太阳在乌云背后努力想把阳光撒向人间

    雨过天青云破处吹来的缕缕微风拂过你的脸颊

    迎着微风贪婪的深吸一口,放下键盘,回想你这一生

    最依赖的python的函数是什么

    emmm,我猜一定是print()

    从入坑案例 print('Hello World') 开始

    你的代码越写越多,逻辑越来越复杂

    但是在代码的寻常巷陌之间

    却总是穿插着大量的print()调试语句

    输出的结果,让人欢喜让人忧

    答应我,从今天开始,忘了他

     以后用ice cream

    icecream调试工具

    1、安装 pip install icecream

    pip install icecream
    
    PS C:\Users\pacer> pip install icecream
    Collecting icecream
      Downloading icecream-2.1.1-py2.py3-none-any.whl (8.1 kB)
    Collecting asttokens>=2.0.1
      Downloading asttokens-2.0.5-py2.py3-none-any.whl (20 kB)
    Collecting executing>=0.3.1
      Downloading executing-0.6.0-py2.py3-none-any.whl (12 kB)
    Requirement already satisfied: pygments>=2.2.0 in d:\python36\lib\site-packages (from icecream) (2.9.0)
    Requirement already satisfied: colorama>=0.3.9 in d:\python36\lib\site-packages (from icecream) (0.4.3)
    Requirement already satisfied: six in d:\python36\lib\site-packages (from asttokens>=2.0.1->icecream) (1.11.0)
    Installing collected packages: executing, asttokens, icecream
    Successfully installed asttokens-2.0.5 executing-0.6.0 icecream-2.1.1

    2、调用方法

    from icecream import ic
    ic('test')

    案例解析

      下面我们通过几个比对案例,来详细介绍一下 ice cream 到底比 print() 强在哪里。

    案例1:访问函数

    #案例1:计算平方数
    def pingfang(number):
        return number*number

    如果我们需要调试函数,获取2,3,4的平方数。那么输出结果,需要这么写

    print(pingfang(2))
    print(pingfang(3))
    print(pingfang(4))

    输出结果如下:

    4
    9
    16

    输出结果并不清晰,输入参数都看不见。
    优化一下:

    print('2的平方是:',pingfang(2))
    print('3的平方是:',pingfang(3))
    print('4的平方是:',pingfang(4))

    输出结果如下:

    2的平方是:4
    3的平方是:9
    4的平方是:16
    • 这样的输出,才是合理的,但是这样我们每个都要这么写,估计会疯掉。
    • 而且,当代码正式上线运行的时候,我们要注释大量的代码。

    不扯了,上icecream

    #引入icecream模块 代替print
    from icecream import ic
    
    def pingfang(number):
        return number*number
    
    #使用ic进行调试
    ic(pingfang(2))
    ic(pingfang(3))
    ic(pingfang(4))

    输出结果如下:

    ic| pingfang(2): 4
    ic| pingfang(3): 9
    ic| pingfang(4): 16

    输出结果被安排的明明白白。

    案例2:访问字典

    建一个以老大命名的字典

    #示例2:科比字典访问
    kobe_dict = {
      'name': 'KobeBryant',
      'team': 'LALakers',
      'number': 24,
      'halloffame' : True
    }

    print() 和 ic()访问方法进行对比:

    #print方法
    print(kobe_dict['team'])
    
    #ic方法
    ic(kobe_dict['team'])

    输出结果对比:

    #print输出
    LALakers
    
    #ic输出
    ic| kobe_dict['team']: 'LALakers'

     高下立判!!!

    案例3:访问对象

    #示例3:湖人类
    class Lakers():
        city = 'los angles'
        player = 'kobe'
        NBA = True

    print() 和 ic()访问方法进行对比:

    #print方法输出
    lakers=Lakers()
    print(lakers.city)
    print(lakers.NBA)
    
    #ic方法输出
    ic(lakers.city)
    ic(lakers.NBA)

    输出结果对比如下:

    los angles
    True
    
    ic| lakers.city: 'los angles'
    ic| lakers.NBA: True


    案例4:精准调试代码

    • 我们在调试业务逻辑比较复杂的代码的时候
    • 为了验证业务在哪个逻辑或者哪一行输出有问题了。
    • 一般都在要监控的代码下面
    • 加上 print('aaa')、print('bbbb')或者print('-------'),别说你没这么干过
    • 搞的代码非常混乱,而且输出也不够精准。
    #示例4:记录代码位置
    def position(name):
        if name == 'kobe':
            #啪啪啪,业务代码一大堆
            ic()
        else:
            #啪啪啪,业务代码又一大堆
            ic()
    if __name__ == '__main__':
        position('kobe')
        position('micheal')

    print() 和 ic()访问方法进行对比:

    •  我们可以精确的输出业务代码的位置。
       

     案例5:始乱终弃很方便

    • 当我们使用print()进行python调试的时候
    • 加了一大堆又臭又长的  print('aaa')、print('bbbb') 或者 print('-----')
    • 当项目正式上线的时候,肯定要去注释掉这些test输出
    • 这个时候,我们才发现:“他们都老了吗,他们在哪里呀~~~”
    • 找不着了,是吧?!这时候又要翻箱倒柜的去找来注释。
    • 如果我们用icecream进行调试
    • 只要开头加上一句
    ic.disable() #关闭ic调试。[默认开启]
    • 你所有的添加的ic输出
    • 相当于你的历史渣男记录
    • 全部洗白。

    如下 ↓ ↓ ↓

    from icecream import ic
    #关闭所有ic调试输出
    ic.disable()
    #业务代码一大堆,啪啪啪...
    #...
    • 如果想要使用ic输出
    • 只要开头启用就好了。
    ic.enable()  #启用ic调试


     案例6:自定义ic输出很方便

    icecream 的默认输出格式:
    
    ic| testic.py:28 in position() at 14:28:51.172
    ic| testic.py:31 in position() at 14:28:51.190

    • 包括前缀:ic
    • 文件名:testic.py
    • 代码位置:28行
    • 函数:position()

    1、修改前缀:加上自定义内容

    ic.configureOutput(prefix='lex的爬虫 | ')
    ic('运行到这里了...')

    输出效果如下:


    2、输出代码运行的时间

    • 有时候,进行代码输出调试的时候
    • 需要知道代码运行该位置时的精确时间
    • 我们可以自定义icecream来实现带时间的输出。
    #定义一个返回当前时间的函数
    from datetime import datetime
    def now():
        return f'[{datetime.now()}]'
    
    #将函数返回值,配置进ic里
    ic.configureOutput(prefix=now)
    ic('运行到这里了...')

    输出结果如下:

     

    ---------The End--------

    推荐阅读

    python实战

    【pygame开发实战开发30例 完整源码】

    【pygame游戏开发专栏,获取完整源码+教程】

    CSDN官方学习推荐 ↓ ↓ ↓

    • CSDN出的Python全栈知识图谱,太强了,推荐给大家!

    展开全文
  • 在IDEA中Debug调试VUE前端项目的方法

    万次阅读 2021-08-09 21:39:53
    调试js代码,每次都在要在代码中写debugger,或者在chrome中打断点,而且chrome的断点信息不人性化。偶然发现idea竟然有这个功能,简直神器啊。研究了半天终于搞定了,哈哈,开心。下面是详细步骤: 1.下载浏览器...

    调试js代码,每次都在要在代码中写debugger,或者在chrome中打断点,而且chrome的断点信息不人性化。偶然发现idea竟然有这个功能,简直神器啊。研究了半天终于搞定了,哈哈,开心。下面是详细步骤:

    1.下载浏览器插件

    在chrome应用商店搜索"jetbrains ide support"插件,可能需要FQ(不会百度,老D google host),如下图,这里是我安装好的。这里我试过找下载好的插件,安装但是没有连接成功,总是提示错误,下文会提到。所以别偷懒,老老实实下载。
    在这里插入图片描述
    安装成功后如右上角会出现此图标

    在这里插入图片描述

    需要注意的是,不要找下载好的插件安装,一是安装后不起作用,二是chrome不信任未知来源的插件,重启后会自动停用插件。如果不能在线安装的话,还有一个办法:将下载后的插件后缀名改为rar,解压缩到文件夹里,使用浏览器的插件开发者模式,将文件夹加载为插件,也可安装。

    还有在插件图标上右键,选项,如下图,可以配置端口,这里要和idea里的一致才行;
    在这里插入图片描述
    在这里插入图片描述

    2.配置IDEA

    idea中配置如下
    在这里插入图片描述
    在这里插入图片描述
    这两步配置好以后,运行刚创建的JavaScript Debug 就可以debug启动,打断点访问了
    在这里插入图片描述

    展开全文
  • devc++调试方法

    万次阅读 多人点赞 2017-11-01 21:34:47
    简述:对代码的调试主要目的在于,通过让程序单步执行,使读者详细的看见每一步的代码执行过程和结果,方便找到错误信息的所在! 1开启调试模式 1.1 点开工具 1.2选择编译器选项 1.3 更改产生调试信息为yes 2...

    基本信息       版本5.11、中文

    (对应版本下载地址:https://download.csdn.net/download/hz18790581821/12729606

    简述:对代码的调试主要目的在于,通过让程序单步执行,使读者详细的看见每一步的代码执行过程和结果,方便找到错误信息的所在!

    1开启调试模式

    1.1 点开工具

    1.2选择编译器选项

    1.3 更改产生调试信息为yes

    2代码调试

    2.1 添加断点(单击每一行的最前边,出现红色√)

    2.2开始调试(点击下方调试即可)

    如下表示调试已经开始

    2.3添加要查看的变量(例如添加i、sum)

    2.4观察变量如何变化

    快捷键     F5    开始调试

    快捷键     F7    单步调试(运行下一步)

    快捷键    F8    单步进入函数调试

    快捷键    F9    停止调试

     

    展开全文
  • 关于DevC++调试问题,还不会调试的同学看这里!!! DevC++该如何调试? 这篇是关于Devc该如何调试的,有些刚接触的同学因为某些因素可能还不会调试,所以我在这里就教大家简单的调试吧! 首先,这里是我用来演示的...

    关于devc++调试问题,还不会调试的同学看这里!!!超级详细调试教程,手把手教你如何调试

    DevC++该如何调试?
    这篇是关于Devc该如何调试的。
    刚接触c语言的同学可能还不会调试,所以我在这里就教大家简单的调试吧!
    首先,这里是我用来演示的一个简单代码。
    题目内容:输入一个正整数n,依次输出0到n,每个数字之间有一个符号,最后一个数后面没有符号。

    代码部分:

    #include<stdio.h>
    int main(void)
    {
    	int n,i;
    	
    	scanf("%d",&n);
    	for(i=0;i<=n;i++)
    	{
    		if(i!=n)
    			printf("%d!",i);
    		else
    			printf("%d",i);
    	}
    	
    	return 0;
    }
    

    大家可以用我的代码简单练练手。

    调试正式开始!
    首先,你要确定,你的调试是TDM-GCC 4.9.2 64-bit Debug,有的同学不知道这是啥,看图!
    调试
    调试环境
    (没有64 debug的,也可以用TDM-GCC 4.9.2 32-bit Debug,好像问题不大)
    然后,我们就可以开始调试了!
    重点:(重要的话说3遍)
    调试过程中如果修改了代码一定要重新编译再调试!
    调试过程中如果修改了代码一定要重新编译再调试!
    调试过程中如果修改了代码一定要重新编译再调试!

    这是很多新手犯的问题,你如果不保存的话,电脑会按照原来的代码调试,而不是你修改过了的!不保存就会发生某些奇怪的事,比如在空白的行上面,居然还在输出内容!

    (编译运行和调试按键在哪里我就不说了,这是最基础的东西了)

    第一步:你先要设置断点。
    在行数标号(1、2、3···)那里点击,这一行就会变成红色,断点就设置在这里了。(或者鼠标右键,然后找到“设置断点”也可以)基础的一般是设置在输入那里(scanf),如图。
    断点设置
    下一步,我们点击调试按钮(别说你不知道在哪里)
    然后页面就会出现这样一个黑色的运行框,同时红色的断点行变成蓝色了:
    调试开始
    注意!下面重点!很多人就是这里一直没搞懂的,不知道怎么就这样那样了的。
    因为我们这里是从scanf开始,所以,先点击“下一步”,
    下一步按钮
    这时页面不会有什么变化,因为你还没有输入东西。然后,回到运行框那里,这时输入一个5进去回车,页面就会变了,
    开始调试
    蓝色表示将要执行的代码行,跳到了7行(红色断点6行不会变),即将执行第7行的for语句(还没有执行!!!刚刚执行的是scanf输入语句),这时,依次“下一步”就可以在for语句里面调试查看了。
    输入成功
    (你可以把代码框调小,运行框放在后面,运行框会按照代码时时输出数据)
    一直下一步,直到程序结束。
    下一步
    调试过程中如果发现错误了,就可以点击底下调试栏的“停止执行”,就可以结束调试了。
    停止执行按钮
    很多新手迷惑的就是输入那里,输入数据有两种方法:
    一、就是上面说到的,先“下一步”,再去运行框输入数据然后回车。
    二、还有一种就是你先到运行框里面输入,不过此时是不会显示你输入了什么,你看到的依然是空白的运行框,输入结束回车后,回到代码框“下一步”,这时,你的输入就在运行框显示出来了。(此方法不太适合新学编程的同学)
    (我也不知道我说清楚了没有,你们可以自己去上手试试,多试几次就懂了,大不了就“停止执行”再来一遍呗嘻嘻嘻)
    简单来说,蓝色到了scanf后,先“下一步”,再输入总没问题。

    接下来介绍一下“添加查看”,这项功能可以时刻监视变量的值,方便查找代码问题。
    添加查看的方法有很多,我这里就写我所知道的哈。
    第一种,直接右键,找到“添加查看”,输入变量名就可以了。
    变量
    第二种,光标移到变量的前面,然后右键找到“添加查看”,你就会发现这个变量自己出现了,不用再次输入。
    变量
    第三种,(适用于在调试过程中)框住变量,然后右键找到“添加查看”,此时变量就会自动出现在左边调试栏里面,更方便。
    变量
    第四种,(同样适用于调试过程中)鼠标移到变量处不动,变量的值就显示在旁边。
    变量
    如果你调试前设置查看的话,变量会“Execute to evaluate”,如图:
    查看
    出现这个问题也不大,调试开始了就不会“Execute to evaluate”了。

    以上应该我能想到的调试时你们不会或者会出现的疑惑了。
    大家懂了么?
    会调试了吗?
    (c语言还是要上手练练,多练就可以意会了)

    如果还有问题的可以评论或者私聊我,嘻嘻嘻(♡˙︶˙♡)!

    这里是学习计算机两年的学生,不能说精通吧,欢迎大家给我提问题提意见,谢谢(*°∀°)

    展开全文
  • WebStorm强大的调试JavaScript功能

    万次阅读 多人点赞 2017-01-06 20:28:47
    一、JavaScript的调试目前火狐和Chrome都具备调试JavaScript的功能,而且还是相当的强大。如果纯粹是用浏览器来进行js调试的话,我比较喜欢用火狐。火狐可以安装各种插件,真的是非常适合开发者。不过今天的主角并...
  • goland远程调试

    万次阅读 多人点赞 2020-01-31 17:07:40
    之前写过一个goland本地调试,为什么可以本地调试还要远程调试呢? 首选声明一点,本地调试是首选,如果可以本地调试,那自然是本地调试最方便。 但是,本地环境和实际环境很多时候是不一样的,很难在本机搭建出与...
  • Eclipse的Debug调试技巧大全

    万次阅读 多人点赞 2017-02-12 13:43:24
    调试中最常用的窗口是: 窗口 说明 Debug窗口 主要显示当前线程方法调用栈, 以及代码行数(有调试信息的代码) 断点Breakpoints窗口 => 断点列表窗口,可以方便增加断点,设置断点条件,删除断点等...
  • GDB调试入门

    万次阅读 2017-12-01 17:47:09
    gdb -q:不显示开始的提示信息可以在.bashrc中加入alias gdb="gdb -q -tui"开始调试执行run(需要提前设置断点),也可以在调试过程中重新运行调试的程序,run后可以跟随发给该程序的任何参数。常用命令 命令 功能...
  • 微信网页调试之利用vConsole真机调试

    万次阅读 2019-06-28 10:56:53
    虽然微信开发者工具可以调试大多数情况,但有些问题开发者工具没法调试,只能在真机里调试 真机调试有多重方式 第一种就是手机连接电脑结合Chrome的inspect进行USB远程调试,这个日后补充 第二种是开启vConsole,...
  • Windebug调试工具

    千次下载 热门讨论 2012-07-26 15:25:37
    WinDebug 是一款调试工具可以调试进程的。
  • 在日常开发中我们经常会遇到多线程Debug调试, 一般我们都是利用Spring Boot对外提供接口,Tomcat中在有多人同时访问时,会开启多线程,但是,这时有可能发生异常。 说明接口在多线程访问中不是很稳定,这时就要...
  • 几款好用的串口和网络调试助手

    万次阅读 多人点赞 2019-10-22 14:27:04
    和嵌入式厮混在一起总得用几个趁手的调试助手,这里介绍几个用过的串口和网络调试助手,各有千秋: 1.这是我最常用的,没有太花哨的界面和操作,满足基本需求。既具有串口调试功能,又具有网络调试功能。不过一般...
  • C语言调试

    万次阅读 多人点赞 2016-05-10 07:33:40
    1.调试的概念以及调试器的选择 在编写代码的过程中,相信大家肯定遇到过这样的情况:代码能够编译通过,没有语法错误,但是运行结果却不对,反复检查了很多遍,依然不知道哪里出了问题。这个时候,就需要调试程序了...
  • AndroidStudio-断点调试-让你的调试更有效率

    万次阅读 多人点赞 2017-01-02 23:18:54
    前言:上篇博客 AndroidStudio-断点调试-也许你该知道断点调试是有多么的美好 ,记录了AndroidStudio上断点调试的基本流程和debug面板按钮介绍.这一篇就给大家分享一点调试的小技巧,让我们的代码调试变得更有效率.你...
  • Android源代码开发和调试环境搭建完整版PPT

    千次下载 热门讨论 2013-10-23 01:16:53
    Android源代码开发环境与SDK开发环境相比,优势是可以查看和调试系统源代码,包括Java代码和C/C++代码。这对应用开发也是非常有用的,因为在开发中碰到疑难杂症时可以跟踪到系统内部去定位问题。对于涉及到C/C++代码...
  • idea远程调试

    万次阅读 2018-02-28 22:52:04
    在工作中不免会遇到由于环境引起的问题,在本地可以但是发布到服务器上有问题,此时可以借助于远程调试帮我们快速定位问题的所在。 【远程调试】 一、基本环境说明 1.本博客的demo代码地址 https://git...
  • java debug调试怎么用?

    万次阅读 多人点赞 2018-10-24 09:19:56
    在做项目的时候,尤其是涉及多个页面的传值的时候,debug调试十分有用,可以迅速帮你找到错误的原因! 用debug的好处: 1.跟踪变量,可以查看变量的值的变化 2.迅速找到错误的原因,节省时间,找错小帮手 那么...
  • 浏览器调试之js调试

    万次阅读 多人点赞 2018-01-28 14:52:06
    现在的浏览器一般都给了我们调试js的功能,个人比较推荐使用google浏览器,他的调试结构清晰且强大,下面就来介绍一下google浏览器的调试功能 调试器界面 按下F12,你会发现弹出来一个窗口,并附着在当前页面,这...
  • 一、微信webview调试方法 整个调试链路示意图如下: 具体调试环境搭建,请看下面流程分解(以微信调试为例进行阐述) 1、安装微信新版本,使用应用宝进行安装微信最新版,如下图: 2、下载TbsSuiteNew.apk,...
  • vs单步调试及断点调试基本介绍(面向小萌新)

    万次阅读 多人点赞 2020-02-24 16:45:26
    简述:本文面向小萌新简单描述visual studio2019下的基本调试技巧 1: 打断点,在侧栏点击一下,即可生成断点 功能: 在调试时可以运行到这一步之后停止 如图 2:进而可以单步调试,快捷键f11 //注,电脑快捷键分软件和...
  • electron 调试

    千次阅读 2020-03-23 16:14:35
    在开发过程中我们经常需要对某一功能进行调试,electron也不例外。 electron有主进程和渲染进程,所以调试部分也分为两大块,即调试主进程和渲染进程 渲染进程 调试渲染进程和调试浏览器的方法基本差不多。在运行...
  • IntelliJ IDEA远程调试

    万次阅读 2016-12-12 15:46:05
    远程服务以debug模式启动需要执行java命令时带上以下JVM参数java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=naddress指定调试端口,可以按需更改。...
  • 三个步骤: 第一步,win+r打开cmd,输入adb devices,查询版本号 第二步,输入adb -s 版本号 uninstall com.example…,后面com开始的部分为你开发的包名 第三步,重新真机调试 ...
  • Vue项目调试总结-WebStorm+Chrome调试

    万次阅读 热门讨论 2018-08-14 16:25:53
    Vue项目调试总结-WebStorm+Chrome调试 Vue项目调试总结-WebStorm+Chrome调试 - 为程序员服务 http://ju.outofmemory.cn/entry/354985 Vue项目其实是可以调试的,刚接触Vue项目开发时,在网上搜了一堆关于Vue...
  • Pycharm Debug调试心得

    万次阅读 多人点赞 2018-07-03 15:08:36
    前言:记得刚开始使用Pycharm编译器的时候,为了调试代码,然后就是各种print。现在想想,果然很粗暴。今天就用用新办法,Debug。1.操作步骤:1-1.添加断点:直接在标记处点击鼠标左键即可。(删除断点只需再点击...
  • js调试技巧(通过debugger调试

    万次阅读 2017-11-29 16:09:35
    通常我们在网站开发的过程中会用到很多JavaScript代码,js代码智能提示和检错机制又很差,这时候就需要我们自己来进行调试调试方法有很多,以前用的是火狐浏览器的调试工具,但是后来版本等等的原因不能用了,现在...
  • datax(24):远程调试datax

    万次阅读 2021-01-29 00:02:48
    我们知道,Java 程序都是运行在 Java 虚拟机上的,我们要调试 Java 程序,事实上就需要向 Java 虚拟机请求当前运行态的状态,并对虚拟机发出一定的指令,设置一些回调等等,那么 Java 的调试体系,就是虚拟机的一...
  • 如何调试程序及调试程序基本步骤、方法详解

    万次阅读 多人点赞 2019-07-02 20:46:05
    1.为什么要进行程序调试调试程序的目的? 程序调试是将编制的程序投入实际运行前,用手工或 编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。 测试时程序...
  • nodejs的调试debug

    千次阅读 2021-01-27 21:13:16
    对于开发者来说,在开发应用程序的过程中,往往为了开发方便和解决bug需要借助于编程语言的调试功能。一般来说我们需要借助于强大IDE的调试功能来完成这项工作。nodejs也不例外。 今天我们来详细介绍一下如何调试...
  • 软件调试方法及调试原则

    万次阅读 2018-11-16 09:08:37
    调试(Debug)   软件调试是在进行了成功的测试之后才开始的工作,它与软件测试不同,调试的任务是进一步诊断和改正程序中潜在的错误。   注: 以问题为中心 以错误为导向   调试活动由两部分组成: u ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,877,159
精华内容 750,863
关键字:

调试