程序员必备技能——调试技巧

简介: 程序员必备技能——调试技巧



一.什么是bug

二.调试是什么? 有多重要?

我们是如何写代码的?

又是如何排查出问题的?

2.1 调试是什么?

2.2 调试的基本步骤

2.3 Debug和Release的介绍

我们可以看到大小是有区别的,原因就是因为Release有优化。

三.windows环境调试介绍

3.1 调试环境的准备

3.2 学会快捷键

当按下F10调试在函数区域时,再按一次F10(当作一条语句)会立刻执行test函数中的语句,如果按下F11就会进入函数内部,如何按下F10依次执行即可。

当我们的程序中前面代码过于复杂,不断按F10太久时,可以在想要执行的语句处设置断点,这样在调试时按下F5就可以立马执行完前面的语句来到断点处等待执行。

有时候在循环内部次数过多时,我们也可以右击断点设置条件来达到某次循环的位置。

再按一次F5:

当有2个断点时,程序并不会在第一次断点执行完就跳至第二个断点,还是会按照所处程序一步一步来的。

3.3 调试的时候查看程序当前信息

3.3.1 查看临时变量的值

       

3.3.2 查看内存信息

调试——>窗口——>内存

3.3.3 查看调用堆栈

查看调用堆栈可以知道哪些函数被谁所调用。 后续可以通过继续按F10来查看所调用的函数。

 

3.3.4 查看汇编信息

3.3.5 查看寄存器信息

四.结语:多多动手,尝试调试

 

 

相关文章
|
网络协议 Shell Linux
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
【Shell 命令集合 网络通讯 】Linux 创建网络连接 nc命令 使用教程
614 1
|
消息中间件 存储 缓存
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍(1)
Linux下kafka之C/C++客户端库librdkafka的编译,安装以及函数介绍
3714 0
|
异构计算
GPT4All的简单使用
本文介绍了GPT4All,一个能在个人电脑上运行的开源大模型系统,支持在CPU和GPU上本地运行,使用的语言模型包括GPT-J和LLaMA,旨在提供隐私友好的聊天体验。
517 2
GPT4All的简单使用
|
机器学习/深度学习 人工智能 自然语言处理
深度学习之对抗样本生成与防御
基于深度学习的对抗样本生成与防御是当前人工智能安全领域的关键研究方向。对抗样本是通过对输入数据进行微小扰动而产生的,能够导致深度学习模型做出错误预测。
517 2
|
JSON 程序员 C#
使用 C# 比较两个对象是否相等的7个方法总结
比较对象是编程中的一项基本技能,在实际业务中经常碰到,比如在ERP系统中,企业的信息非常重要,每一次更新,都需要比较记录更新前后企业的信息,直接比较通常只能告诉我们它们是否指向同一个内存地址,那我们应该怎么办呢?分享 7 个方法给你!
465 2
|
XML 存储 安全
解libvirt中Domain类的方法1
解libvirt中Domain类的方法
235 0
|
监控 Unix 虚拟化
libvirtd 配置日志
libvirtd 配置日志
308 0
|
存储 Serverless Python
`quad()` 函数是 `scipy.integrate` 模块中的一个函数,用于计算一维函数的数值积分。其基本语法如下:
`quad()` 函数是 `scipy.integrate` 模块中的一个函数,用于计算一维函数的数值积分。其基本语法如下:
|
Cloud Native Java API
Java一分钟之-Micronaut:轻量级微服务框架
【6月更文挑战第16天】Micronaut是面向JVM的微服务框架,以其快速启动、低内存占用著称。文章探讨了配置管理、注解理解和AOT编译的挑战,提供了解决方案,并通过一个简单的HTTP服务示例展示了如何创建控制器和应用启动类。通过克服这些问题,开发者能更好地利用Micronaut构建高效微服务。
391 8
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的宠物领养系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的宠物领养系统的详细设计和实现(源码+lw+部署文档+讲解等)
261 0