IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 分享会(一) - 使用IDEA系列软件debug的全面技巧(Python为例) -> 正文阅读

[开发工具]分享会(一) - 使用IDEA系列软件debug的全面技巧(Python为例)

使用IDEA系列软件debug的全面技巧

腾讯会议分享会长期链接:https://meeting.tencent.com/dm/Qet4sVXmOccd
每个人都会debug,所以该主题足够**普适。**但大家对各种语言的ide的熟悉程度也不一样, 也不一定能够使用好所有的功能,不同语言的ide提供的debug功能也不尽相同。

笔者最熟悉python,所以以pycharm为例,不管在什么地方,jet brains的ide都不会让你失望。

  • python: pycharm
  • go: goland
  • c/c++: clion
  • java:intellij

调试,将自己想象的过程与实际的过程做对比

基本单步调试技巧

  • 打断点。断点当前行不执行
  • step over。逐行执行代码
  • step into。跳转进入当前行调用的函数,<不论函数是否在当前脚本文件内,都跳转>
  • step into my code。只跳转当前脚本文件内的函数内部。(经测试也是可以进去其他脚本的。)
  • step out。从里面一层的函数跳转到外边一层
  • run to cursor。运行到光标选定的代码处

evaluate expressions

  1. 查看变量。经常看的变量添加到watch区
  2. 使if分支按照意愿执行
  3. 类似drop frame,重复执行一次某函数。

条件断点

满足条件时停止的断点。

异常断点

闪电标志:debug时,如果某行语句没打断点,但执行过程中产生异常,会在该行产生闪电标志的断点,同时停顿。

可以在左侧选择是否添加该类型的断点。

image-20220521101651723

添加命令行参数

按照在命令行中添加参数的方式,在edit config的parameters栏添加参数。

jupyter notebook

基本一致,注意每一个块的代码执行后,相应的变量都会在全局生效。所以命名时,要谨慎一点。另外,一个好的noteboke可以保证从头到尾执行后,不出问题。

类的调试

可以实现__str__函数令类更直观。

多线程调试

  1. print大法好。
  2. 一个线程调试,使用thread模式,只会阻塞该线程,其他线程会一直执行。使用all模式会在到达断点时阻塞所有线程(到达断点前,其他进程可能已经执行了),并且单步时其他线程也不会再执行。
  3. 想在多个线程分别调试,要全部使用thread模式,手动来条件各个进程的执行过程。

vscode远程调试

注意,vscode是以文件夹的形式来作为工程的。所以,一定要在调试的时候,在工程目录中大概vscode。不管是Linux还是Windows都一样。

c/c++安装好插件,以及gdb。如果工程目录对了,但是还是无法调试,就是插件或者其他东西没安装好。

vscode 远程debug 调试linux上的makefile工程步骤

Python会非常简单

其他(intellij调试技巧)

搞Java的同学再补充一下这个视频

方法断点

帮助判断具体是接口的哪个实现在运行。

drop frame

Java中可以重新执行函数。

python中可以使用evaluation实现大体相同的功能。

pycharm快捷键:

  1. Alt+Shift+E,将代码放到console中执行。

演示代码

https://github.com/SFUMECJF/weekly-report/tree/main/week2/codes

找到组织

在论坛页面。

问卷

希望大家能对本次分享会给个建议,链接或者扫码~

https://jinshuju.net/f/kok6NH

请添加图片描述

致谢

  • cs61b某节课的lab
  • bilibili的很多debug教程

互相交流

读者你好!如果你对本文内容感兴趣,我十分希望能够和你互相学习,可以扫码和我联系!一起进步

在这里插入图片描述

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:25:54  更:2022-05-24 18:28:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 12:07:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码