首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【入门必备】编程必备技能--抓出代码蛀虫

很多朋友,在写代码时候经常运行出错然而却找不到哪里错了。那就是你没有学会分析错误,你到底错在哪里了?为什么错了? 第一种代码致命错误。...这个时候没有编译器直接给你指错误源点,你怎么去寻找错误?第一你就要想到你代码没有致命错误。 第二你肯定是犯了逻辑错误。 逻辑错误就需要你去讯寻找哪一步逻辑错误了?然后更改过来!...简单逻辑错误,当你在调试过程,遇到哪里就会中断,这个时候你也就知道到底是那一句代码哪里错了。...下面演示一下简单逻辑错误调试(例子编译器为VS2010不同编译器可能控件不一样,但是运行步骤都是一样 ): 第一种错误简单逻辑错误(少了某些东西,但是编译能够通过,运行失败: #include<stdio.h...这个时候系统报错了,箭头指向那一句代码就是有问题代码。我们回到源代码去看看那一句代码我们忽略了什么。 原来是我们在读取时候少了一个‘&‘符。触犯了在论代码规范重要性里面的代码书写规范了。

92060

Python DeBug7个步骤【Programming】

如果底部没有帮助,并且你代码已经有一段时间没有被连接了,那么运行它将是非常有帮助推荐pylint或者flake8。通常情况下,它指向了一直忽略错误。...“但是Maria,”听到你说,“如果有一个堆栈跟踪,这些都是有帮助,但是只有一个失败测试。该从哪里开始?” Pdb,Python调试器。 在您代码中找到一个您知道此调用应该命中位置。...比方说,你放入一个print语句,然后发现有些地方错了——而且一定是早些时候出错了。但是看看你把print语句放在哪里函数,你不知道你是怎么到那里。...是的,已经在代码库查找了一个函数调用位置,但是这可能会变得很乏味,并且对于一个流行函数来说并不能缩小范围。Pdb非常有用。 您按照建议,插入pdb断点并运行测试。...然后它嗖一声就过去了,又失败了,没有休息。保留断点,然后在测试套件运行一个测试,该测试执行与故障测试非常相似的操作。

1.2K00
您找到你想要的搜索结果了吗?
是的
没有找到

【Debug】如何顺利重复别人画图代码?一名Geek粉丝Debug历程

第一个图很爽 【画图】SARS-CoV-2结合宿主细胞受体ACE2在人组织表达情况 话说上次站长画了一个图,还公布了代码,照搬过来很是爽了一下,相当于白piao了站长一回,不过用read.csv...可是万万没想到,居然报错了,大概意思就是只有字符串能够转换为symbol,这就奇怪了,同样代码在站长机器上跑就没有错误呀。...好在Rdebug系统非常完善,输入rlang::last_error() 之后就能看上次报错错在哪里,这时候发现原来卡在 rlang::ensym(y) 这里,那么这个函数为什么会报错?...然后运行一下这个函数,再到原来代码里把《ggstatsplot::》去掉即可,这样修改过后函数覆盖了原来包里函数,就不会报错了,如图所示: 然后再运行一下,一切就正常了,顺利得到了batch.pdf...头一回帮站长debug,就碰到个这么深bug,真心不容易,南方冬天阴冷,敲键盘手都要冻冻疮了,现在是这样敲键盘: ps:喜欢这款键盘请留言 素材: 1、fread函数版本代码 2、

28520

3-5 使用plugins让打包更便捷

简介 loader 被用于转换某些类型模块,而插件则可以用于执行范围更广任务。插件范围包括,从打包优化和压缩,一直到重新定义环境变量。...也就是生成index.html和源文件html并无关系,这显然不是我们想要效果。那么有没有办法让生成 index.html 是根据 src 下 index.html 内容来决定。...竟然还是什么也没有。问题很明显,src引用路径报错了。原因在于3-2 使用loader打包静态资源(图片) ,为了保证图片引用地址正确,我们加了publicPath这一配置。...不管丢到哪里都能正常运行。但事实上,我们生成html文件,往往和其他资源并不放在一处,另外,它们也并不都是处在同级目录,我们很可能为这些资源文件单独生成一个父目录,然后丢在其他地方。...当然,更复杂情况是,js文件,css文件,图片文件,并不想放在一起。这种情况是很常见,就比如我们图片经常放在cdn。

67020

Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由

更多内容可以参考以前写博文《CSS预编译技术之SASS学习经验小结》 好,调整好了我们 App.vue 文件后,因为我们使用了 scss 文件预编译,所以我们需要安装两个支持 scss npm...调整 router 路由文件 现在,这个项目还跑不起来,如果你运行 npm run dev 还是会出错。因为我们还没有配置路由。...如下: npm run dev 如果你项目没有能够顺利跑起来,则说明你哪里错了。在终端里面或者浏览器里面,是会告诉你出错在哪里。 但很可能你英文不是很好,看不懂那些提示。...没有关系,借助搜索引擎和翻译引擎,应该能够很快排查出来,到底是哪里错了。 另外,是使用 Atom 编辑器来编写代码。...但是希望你还是能够顺利跑起来,得到如下结果: 如果文章由于我学识浅薄,导致您发现有严重谬误地方,请一定在评论中指出,我会在第一时间修正博文,以避免误人子弟。

75490

Vue3 封装出让后来者难以理解组件,让你变得不再随时可替代

在ui疯狂前提条件下,发现了很多轻提示和弹框dialog高度相似又要支持自定义,便开始了封装之路。...,不过,相信小伙伴们肯定一直写都是函数。...$isServer是什么,说实话,在没看文档前也不会哈哈哈。 ? image.png 通过文档可以知道这是判断是否运行在服务器上,我们在服务器上又没有界面自然不需要了。...image.png 看到这里有人会问这个booo哪里,为什么在组件没有props去接收参数也可以显示,这个就是构造器特殊地方哈。...开始在正式项目中使用 有了前面的铺垫,自然兴致冲冲把自己思路在项目中实践,突然想到自己之前挖坑项目使用是vue3,不确定之前写还可不可以,先放上去试试。果然不出意外错了

44120

如何有效报告 bug

如果程序是需要跟另外一台电脑进行网络通信的话,你可能无法发送电脑副本给他们,但是你至少需要告诉他们电脑型号,以及安装软件。 四、这里很正常啊,哪里错了?...曾经跟另一个程序员一起工作,他一直在找代码 bug,经常找到一些他自己解决不了 bug,然后让帮忙解决。“ 什么问题了? ” 问。然而他回答却总是一些关于他对这些 bug 意见。...我们需要花很多时间去寻找产生错误地方,但是最后我们经常会花了半个钟在原本正确代码寻找错误,而实际上问题出在其他地方敢确定他肯定不敢对医生这么做。...例如:每星期一次错,偶尔一次错,或者在程序员面前从没有出错过,但经常会在截止日期快到时候出现。 大多数「间歇性故障」并不是真正「间歇」。他们中大多数跟某些地方是有联系。...另外,如果你可以重现错误,但程序员却不行,那么你电脑和他们电脑可能在某些地方是不一样,而这个区别就是造成这个问题原因。

44420

方法论:在不是太懂源码情况下,是怎么定位源码问题

在日常开发,我们多多少少会遇到些问题,有时候是自己写法有错误,这时候可能就要先检查一遍,看看文档,看看是哪里问题。...调试代码 光有决心还是没有的,得实际行动。 但一个巨大问题摆在面前,pnpm 代码也没看过鸭,调个啥玩意??? 因此,第一个问题,是怎么把 pnpm 源码跑起来调试?...我们需要找到 wantedDependency.pref 被赋值地方 下面又是一些经验: • 全局搜索 .pref =,是为了所有 wantedDependency.pref = xxx 这些代码...接下来该怎么办? 我们可以利用函数调用栈,逐级往上找,调试方法跟之前一样,目标是,找到 ``wantedDependency.pref 被赋值地方。...有较多调试经验开发者,也可以不逐级网上找,如果觉得肯定不会在当前函数层级被赋值,可以直接跳到更深函数调用层级 最终,找到了整个 wantedDependency 初始化地方:resolveDependency

62910

方法论:在不是太懂源码情况下,是怎么定位源码问题

在日常开发,我们多多少少会遇到些问题,有时候是自己写法有错误,这时候可能就要先检查一遍,看看文档,看看是哪里问题。...调试代码光有决心还是没有的,得实际行动。但一个巨大问题摆在面前,pnpm 代码也没看过鸭,调个啥玩意???因此,第一个问题,是怎么把 pnpm 源码跑起来调试?...我们需要找到 wantedDependency.pref 被赋值地方下面又是一些经验:全局搜索 .pref =,是为了所有 wantedDependency.pref = xxx 这些代码全局搜索...接下来该怎么办?图片我们可以利用函数调用栈,逐级往上找,调试方法跟之前一样,目标是,找到 wantedDependency.pref 被赋值地方。...直接注意是,它 package.json 没有 dependencies 字段pkg 对象根据 package.json 生成,这一句代码,由于 pkg.dependencies 不存在,因此会导致使用了锁文件

88920

【入门级】从一道面试题了解js作用域及作用域链

作用域【废话部分,有基础直接看面试题部分】 什么是作用域 啥是作用域,简单说,就是变量可以生效地方,就叫做作用域,也叫执行环境,大家也可以理解为变量可以发生作用地方。...另外要说一点,在我们讲this那一篇文章说了,this是在函数调用时决定,在函数被定义时并没有this。而作用域则刚好相反,作用域是在函数定义时决定,跟函数哪里被调用没有关系。...所以无论我们在哪里调用函数,都不会改变他作用域链。 块作用域 上面我们说了,在es6之前,js没有块作用域,在es6,添加了let关键字实现了对块级作用域支持。...进行++操作其实都是操作同一个变量——全局变量index,然后我们里面又用是setTimeout,一个异步函数,虽然我们这里没有设置定时时间,但它还是一个异步函数,需要等到for循环全部结束后才会运行...答案是5个 undefined,最开始也有点懵,为什么,但仔细一看其实很简单,因为setTimeout里面那个未命名函数也有自己作用域,它接收一个参数i,其实就是在自己作用域里定义了一个空变量

38310

博客用不着什么JavaScript框架

如果浏览器需要解析 296kb JavaScript 代码才能显示博客文章列表,这就不是什么"渐进增强”,而是用错了工具。...JavaScript 是一种强大语言,可以完成一些令人难以置信事情,但是在开发你很容易过早开始使用它,其实本来用 HTML 和 CSS 就够了。...用不着针对什么新打包器来调整前端构建流程,只需放入现有的 webpack 文件和 src 文件夹即可。使用并发包,可以在 Eleventy serve 过程同时运行构建脚本。...例如,在 Eleventy 没有一种优雅方法来生成响应式图像。...黑暗模式切换——虽然可以只用 CSS 来实现,无需访问 cookies 或本地存储,但我没办法在页面之间保持设定值。 是否会在不久将来在网站上加入 JavaScript

4.1K10

『Ant Design』主题定制

哪里可以找到这个文件,就是项目依赖文件夹 node_modules ,然后找到 antd 文件夹,然后找到 dist 文件夹,然后找到 antd.less 文件,这个就是 Ant Design 样式文件...这个时候隐藏 webpack 那些比较复杂配置我们就不用去接触了,只需要专注于我们自己配置就可以了,这样就可以避免出错了。...然后运行项目,刷新一下发现没有效果: 这是为什么?...函数式组件在之前 React 基础系列文章已经介绍过了,这里就不再赘述了,如果不了解的话可以去看看我之前文章。...再来一个,将 Link Button 也改为绿色,这个好像是文字颜色,再去官方文档找找有没有更改文字颜色 Token 名称,然后在文档搜索了一下没有找到,利用猜想加编辑工具提示找到了想要

33750

JavaScript入门(1)

,保证被包裹就好,因为这样浏览器才知道js从哪里开始哪里结束,要解析哪一部分语言。...这个例子,js被插入在了body里面,运行时候会弹出框,写着“萌兔IT”,是不是很有意思~ 与CSS相同,js也有着不同引入方式,如上图则是在HTML中直接插入js语言,我们也可以将...有小伙伴一定会奇怪,在不同地方引入js有什么区别,这里就涉及到了js加载顺序问题,因为js是单线程,所以当没有特殊处理时,会按照页面的引入顺序进行加载,如果前面的js加载时间过长,就会引发阻塞了(...引入新原始数据类型);引用类型则是通过值类型组成复杂数据结构,包括对象(Object)、数组(Array)和函数(Function) 这里有个注意地方,null类型代表空值,代表一个空对象指针,使用...() (6)对象创建表达式:创建一个对象并调用一个函数初始化新对象属性。

81420

代码要想写得好,品位必须提一提!

可移植(Portable) 某些程序需要在多种操作系统下运行,在这种情况下,代码可移植性成为一种必需能力。 要让代码具有可移植性,需要对所运行各种操作系统底层有充分理解和统一抽象。...不好函数名称(Bad Function Name) 如do(),这样函数名称没有多少信息量;又如myFunc(),这样函数名称,个人色彩过于强烈,也没有足够信息量。 2. ...函数不是单一目的(The Function has No Single Purpose) 如LoadFromFileAndCalculate()。这个例子是编造,但现实这样函数其实不少。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了?软件工程师时间应该花在哪里?...而如果在代码做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档不会出现细小逻辑。对于一段程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

31130

2021第二期_数据挖掘班_微信群答疑笔记

尝试写了一个函数,把每一列提取出来变成新CSV,但是在文件名命名上好像没办法实现自动化? file=后面应该写引号里加文件名对不对?...,这个地方用list 还是 c?...列表 昨天练习里用到mpg文件,可以view,可以根据它画图,可是在工作目录里并没有,请问这个文件在哪里?...想请问一下老师们 R中有没有办法模糊识别呀 就是从两个地方下载得到表格想要通过基因全称来合并 但是可能两边基因全称有一点点区别 比如-变成空格这种 虽然变化很小 但是%in%就没法识别了 R没那么智能...xy是一一对应,去掉xNA还要把yNA也去掉才行 老师,为什么这个诺模图矫正曲线画出来是这样呀? ? 老师,这个循环哪里错了? ?

96230

好代码和坏代码

可移植(Portable) 某些程序需要在多种操作系统下运行,在这种情况下,代码可移植性成为一种必需能力。 要让代码具有可移植性,需要对所运行各种操作系统底层有充分理解和统一抽象。...不好函数名称(Bad Function Name) 如do(),这样函数名称没有多少信息量;又如myFunc(),这样函数名称,个人色彩过于强烈,也没有足够信息量。 2. ...函数不是单一目的(The Function has No Single Purpose) 如LoadFromFileAndCalculate()。这个例子是编造,但现实这样函数其实不少。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了?软件工程师时间应该花在哪里?...而如果在代码做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档不会出现细小逻辑。对于一段程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

80020

好代码和坏代码

可移植(Portable) 某些程序需要在多种操作系统下运行,在这种情况下,代码可移植性成为一种必需能力。 要让代码具有可移植性,需要对所运行各种操作系统底层有充分理解和统一抽象。...不好函数名称(Bad Function Name) 如do(),这样函数名称没有多少信息量;又如myFunc(),这样函数名称,个人色彩过于强烈,也没有足够信息量。 2. ...函数不是单一目的(The Function has No Single Purpose) 如LoadFromFileAndCalculate()。这个例子是编造,但现实这样函数其实不少。...曾说过一句比较有趣的话: “如果一个从业者告诉你,他大部分时间都在写代码,那么他大概率不是一个高级软件工程师。” 那么,软件工程师时间都花到哪里去了?软件工程师时间应该花在哪里?...而如果在代码做修改,不仅会涉及这些主要逻辑,而且会涉及那些在文档不会出现细小逻辑。对于一段程序来说,任何一个逻辑出现问题,程序都是无法正常运行。 4.

89010

Genesis框架从入门到精通(4):框架内置动作(续)

在这篇文章将继续讲解如何使用自定义函数、在添加动作时使用既有函数技巧,以及怎样使用Genesis函数。...函数可以不需要参数,也可以有多个参数。在这个例子里,设置了一个参数“默认”值,但是在调用该函数时可以用别的值来替换它。...函数部分以右大括号“}”结束,因此php引擎知道在哪里停止。 这就是一个完整函数了,但是你可能会想“又不懂php,就会点html和css,这玩意对没啥用”,就像我刚开始学时候一样。...这比较难搞,因为有的子主题中并没有这个文件,而在Genesis这个文件可能只有一行genesis();  怎么办?用动作(action)就行。我们来看看Add to Any插件。...当你使用钩子时,你也是在调用一个函数,你就是告诉在函数运行之前告诉它要在哪里运行。这意味着钩子函数可以与“普通”函数互换。

62320

从猫蛇之战看内核戏CPU

很多同行都知道,今天CPU是运行在所谓保护模式,软件访问内存空间都是虚拟空间。而且这个虚拟空间中内容是分三六九等,是分平民区和富人区,是分道路和深坑。...因为此,访问内存时是要小心,有些地方可以访问,有些地方一访问就可能大问题,爆炸崩溃甚至“死亡”。 大多数应用程序崩溃和系统蓝屏都是因为访问了不该访问地方。...但是在调试器里,dd 0没有问题,调试器会给出一串串可爱问号,代表不可访问,子虚乌有。 6: kd> dd 0 00000000`00000000 ???????? ????????...,可以看到很多地方调用了上面两个函数: ?...简单来说,内核里封装了两个特殊函数,提供给包括调试器在内一些特殊客户使用。 接下来问题是,probe函数内部是如何做?有关源代码如下。 ?

81120

程序员新人怎样在复杂代码找 bug?

2.对于某些bug没有头绪或者现象古怪不知道从哪里下手,找有经验同事问一下思路,因为在那种开发多年大型系统里,经常会反复出现同样原因bug,原因都类似,改了一处,过一阵子另外一处又冒出来,而且无法根治...比如:那个系统里有个特别危险API,接口参数比较难用,一旦有人用错了某些情况下就会出诡异现象,解决很简单,找到调用这个API地方把调用方式写对就好了。为什么不根治?...比如:遇到一个死锁问题,但是检查代码发现所有的锁都是配对没有忘记解锁地方,而且锁很简单就是一个普通临界段, 保护几行赋值语句而已。这样代码怎么写才能让他死锁?...想如果让故意制造这样一个现象,只有在上锁时候强制杀掉线程了。既然这样就可以去看看有谁 强杀线程了没有。 6.制作工具,针对某些bug编写一些调试辅助工具。...比如,那个系统没有完善崩溃报告,虽然也有dump,但是分析出来callstack经常不准。于是为解决崩溃问题编写了个工具,会自动扫描代码,在每个函数入口和出口插入log,以此来定位崩溃点。

58940
领券