debug的一点总结】的更多相关文章

程序员常常需要和bug打交道,一般来说调试bug的时间要多于编写程序的时间. bug可以简单的分为两大类: 语法上的bug 逻辑上的bug 语法上的bug就是指编译器能够识别的,例如常见的缺少分号和括号,传参时数据类型不匹配,这一类的bug是比较容易调试的.可以直接根据输出信息找到对应的错误语句. 逻辑上的bug就很麻烦了,这样的bug编译器是不会显示出来的.例如最常见数组越界,非法访问内存这些问题编译器都不会去识别,只有程序在执行的时候才会显示出来.这个时候我们常常通过会将程序分块,来判断程序…
目录 1. 看待问题 2. 为什么要debug 3. 我理解的问题定位能力 4. debug能力模型的4个层级 5. 小结与扩展 1. 看待问题 遇到更高级的bug,解决更重要的问题,是开发同学的迭代生活. 遇到问题.分析问题.定位问题.并寻求优雅的方式方法解决问题,为我们不断成长提供了素材. 2. 为什么要debug bug在所难免.问题在于怎么减少不必要的bug,以及快速解决问题! 提升个人技术素养,最大限度减少bug,降低版本交付风险.面向对象能力.UT能力等基本功最应该重视和掌握. 另一…
debug的使用 往往我们在写代码的时候会发现那种很隐秘的bug,一直找找不多,甚至开始怀疑人生.目光扫描和人脑编译又耗时又耗精力又很容易中途乱了脑子,一切得重新来,所以我写了一篇博客来模拟一下检查bug时debug的过程,讲述一下对debug的一点了解和大概用法,求观摩的大神们多多批评,多多指点. ps: 大家用的编译器不一定相同,debug的思想都相同,只是具体操作有略微区别,这里用Xcode编译器为大家演示. 这里我们假设有一道题目为: 输入n,然后输入n个数,输出这n个数的平方和. 范例…
以前调试只是QML或者只是C++的QT程序很简单,断点打上,直接debug按钮一点,喝一口水,自然就停在断点了. 这次遇到C++和QML混合的程序,把CONFIG+=declarative_debugCONFIG+=qml_debug配置上点了debug就一直等啊等, 就是不弹出主窗口,不知道的, 估计以为电脑卡死了.就算喝完一桶水,也等不到进断点的时候.打开调试信息面板,会看到提示信息 QML Debugger: Waiting for connection on port xxx,一直wai…
前言 去年刚入职的时候,我就发现,po类(和数据库表对应的类)上,一片都是光秃秃的,什么注释都没有,类上没注释,field上也没注释. 在以前的项目中,其实我们都是有生成注释的,比如,对于下面这个表: CREATE TABLE `t_user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键', `name` varchar(100) DEFAULT NULL COMMENT '名字', `email` varchar(128) D…
eclipse 创建的maven项目,引入jar包之后出现红色叹号,一直找不到原因,连main方法都无法运行,提示找不到类: 错误: 找不到或无法加载主类 soapsampler.SoapSamplerGui 百思不得其解,使用maven -X clean package  打了 个空包,啥类都没有打进去,比较无语 D:\tools\eclipse-jee-oxygen-2-win32-x86_64\eclipse\workspace\soapsampler>mvn -X clean packa…
上午的题目是: 1. main里面定义的变量必须手动初始化,使用memset或者其他,函数外或者函数内,会进行初始化为0. 2. 最长回文子串的马拉车manacher算法,不会写! 3. 数字三角形dp,水题. 4. x + y = z,注意判断长度,使用dp,dfs也可以,这是2个字符,还有一个长字符串是否由几个字符串组成. 5. maximize rectangle,最大矩形,使用stack优化,或者左边,右边,预处理,最后再扫一遍处理. 6. 多字符串匹配,trie树,我实在没见过这样的写…
上一篇<学习AOP之认识一下SpringAOP>中大体的了解了代理.动态代理及SpringAop的知识.因为写的篇幅长了点所以还是再写一篇吧.接下来开始深入一点Spring aop的一些实现机制. 上篇中最后有那段代码使用了一个ProxyFactory类来完成代理的工作,从而实现了Aop的Around Advice,代码如下: package aop.demo; import org.springframework.aop.framework.ProxyFactory; public clas…
定义在NuGet包"Microsoft.Extensions.Logging.Debug"中的DebugLogger会直接调用Debug的WriteLine方法来写入分发给它的日志消息.如果需要使用DebugLogger来写日志,我们需要将它的提供者DebugLoggerProvider注册到LoggerFactory上.由于定义在Debug类型中的所有方法都是针对Debug编译模式的,所以在只有针对Debug模式编译的应用中使用DebugLogger才有意义.这里将的"De…
我有一个不知道是好还是不好的习惯,搞不懂的一些玩意儿,喜欢调试然后单步执行看这玩意儿到底是怎么运行的. 今天看到正则表达式的时候,appendReplacement()这个方法怎么也看不明白它是怎么工作的,于是想调试源码单步执行,然后watch几个关键的变量看看. 刚开始的时候,eclipse里调试模,单步,发现没有办法进入方法内. 用google百度了一下,发现是JRE配置的问题. 使用jre是不可以的,需要使用jdk的环境.(之前真的没有注意到这一点) 于是window->Preferenc…