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

2019-05-02 如何有效提交 Bug 报告?

如何报告 bug Step 1:尝试重现 bug,确保确实是个 bug,而不是用户或环境 error。...如果不能重现找到 bug,那么很有可能实际不是个 bug。 Step 2:确认 bug 是否已报告过 一旦确定了确实找到了个 bug,应该看看这个 bug 是否已经备案或上报了。...如果有很多东西都不像你预料那样起效,可以考虑创建多个 bug(或是一个有子 bug bug)。 示例:点击“通过 Google 账户登录”链接时,窗口关闭了,然后重新打开 Picasa。...除非你提交是功能需求,否则应该忠于事实,省略如果是开发者会如何制作软件等内容。 报 bug 前找找已有的 bug 报告。...就是在 Lucid 任职之前,也经常会给开发者发邮件提 bug。总是会被收到回复惊喜。通常都会受到回信,并且最终开发者会修复 bug,或者与我解释不会(或无法)修复原因。

1K40

Android教程-保存数据-保存文件

例如,很适合通过网络进行图片文件或者任何其它文件交换. 本课程展示了如何应用中进行文件相关基础操作....在内部存储中保存一个文件 ---- 要在一个内部存储中保存一个文件时,可以通过调用下面两个方法其中之一,来获取相应目录 文件 : getFilesDir()     返回一个表示应用内部路径...除非你明确将文件设置为可读或者可写,其它应用不能浏览到你内部路径. 因此一旦在你内部存储中文件上使用了 MODE_PRIVATE , 它们就再也不会被其它应用访问到了....在外部存储上保存一个文件 ---- 由于外部存储可能不可用——比如用户已经将其挂载到了一台PC上,或者已经将提供外部存储SD移除——应该在访问之前总是去验证一下其可用性 ....每一个通过此方法创建路径都被添加到了一个所有应用程序外部存储文件路径 , 它们会在用户卸载应用时系统删除掉 .

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

如何用7个简单步骤,在Firefox开发工具中调试JavaScript

不幸是,在一个周五晚上把发送到生产环境之后,您开始看到仪表板上出现了错误报告。有一个bug,需要尽快修复。...这个方法调用了三次,那么,哪个实例是罪魁祸首呢?您可以更仔细地查看堆栈跟踪,发现是来自第13行调用导致了错误知道第13行与中间名值有关。因此,您应该将精力集中在通过正确设计输入来重现错误。...有了这些额外知识,您可以填充第一个和最后一个名称字段,但是将中间名称留空,以查看这是否会触发错误。 ? 点击保存按钮。从这里开始,Source选项将打开,您可以看到断点激活。...现在,您可以使用“Step In”按钮移动到对capitalizeString函数调用中。 ? 导航调用堆栈 您像这样浏览代码时,您可能想要跳转回函数,以检查此时发生了什么。...切换到Console选项,让我们开始分解导致错误行,以便使用Console选项修复 首先,检查value.split(“)”输出,这样您就可以获得第一个字符,然后调用toUpperCase

4.1K60

实战!半小时写一个脑力小游戏

我们还需要添加一个点击效果。 每次元素点击时都会触发 :active伪类,引发一个 0.2秒过渡: ? 翻转卡片 要在单击时翻转卡片,需要把一个 flip类添加到元素。...为了能达最佳效果,把设置为 1000px: ?...接下来对 .memory-card元素添加 transform-style:preserve-3d属性,这样就把卡片置于在节点中创建3D空间中,而不是将其平铺在 z = 0平面上(transform-style...匹配卡片 完成翻转卡片功能之后,接下来处理匹配逻辑。 点击第一张卡片时,需要等待另一张翻转。 变量 hasFlippedCard和 flippedCard用来管理翻转状态。...玩家点击第二张牌时,lockBoard将设置为true,条件 if (lockBoard) return;在隐藏或匹配之前会阻止其他卡片翻转: ?

1.7K20

Linux 之父如何定义 Linux?

这些设计绝大多数“极少调用特性比如调试(谁无论如何需要的话,程序第一次是无法工作:-))以及其它特性。如上所述,没有登陆和初始化进程。...这里提到一些问题将由我(即lines/387/floppy支持)尽快修复,但我希望得到库函数支持。感谢你们提交错误报告及补丁还有愿望清单,如果真的有针对问题补丁,我会立即尝试修复。...LINUX移植软件LINUX设计让移植相对容易。因此,就有了完整termios实现和一些POSIX库。所移植(诚然相对较少)程序没有任何问题。...这些设计绝大多数“极少调用特性比如调试(谁无论如何需要的话,程序第一次是无法工作:-))以及其它特性。 如上所述,没有登陆和初始化进程。...这里提到一些问题将由我(即lines/387/floppy支持)尽快修复,但我希望得到库函数支持。感谢你们提交错误报告及补丁还有愿望清单,如果真的有针对问题补丁,我会立即尝试修复

15.1K20

和各种诡异 Bug 打交道 13 年,总结了 18 条经验

另一个例子:遇到一个错误元素时,直接返回而不是给出错误解析代码。调用在故障状态下持续了一段时间,使得调试难度加大。一旦故障检测出,最好要及时返回这个错误。 4....即使If语句在概念上很简单,它有多个条件需要追踪时,很容易出错。最近尝试重新把代码写得简洁,避免出现复杂If语句。 5....而且,如果在If语句一个分支中设置了一个变量,也许应该在其他分支也设置该变量。与此相关是标志(flag)设定情况。仅仅添加设定标志条件很容易,但是容易忘了添加应该重新设定标志条件。...确保添加足够(但也别太多)日志记录。那样就能弄清楚为什么程序在执行执行任务。让一切运转良好时,无关紧要。但是只要问题发生(这不可避免),会很庆幸添加了合适日志记录。 ?...有一次,在一种情况下,对处理关联号码做了改变,包括两部分:路由地址前缀(总是相同),和从000999动态分配号码。问题是,查找相关性时,动态分配数字第一个数字在查找之前错误地删除。

87780

和各种诡异 Bug 打交道 13 年,总结了 18 个经验

另一个例子:遇到一个错误元素时,直接返回而不是给出错误解析代码。调用在故障状态下持续了一段时间,使得调试难度加大。一旦故障检测出,最好要及时返回这个错误。...而且,如果在If语句一个分支中设置了一个变量,也许应该在其他分支也设置该变量。与此相关是标志(flag)设定情况。仅仅添加设定标志条件很容易,但是容易忘了添加应该重新设定标志条件。...确保添加足够(但也别太多)日志记录。那样就能弄清楚为什么程序在执行执行任务。让一切运转良好时,无关紧要。但是只要问题发生(这不可避免),会很庆幸添加了合适日志记录。...问题是,查找相关性时,动态分配数字第一个数字在查找之前错误地删除。所以,不是寻找 637 之类号码,寻找是 37,而这个号码不在表中。...这意味着,一直寻找到 100,所以前 100 个调用正常,而之余所有 900 个调用失效。所以除非我在重新启动之前测试了 100 多次,否则在测试时发现不了这个问题。

65130

C# API中模型和它们接口设计

因为它们不能修改,所以跨多个数据模型共享一个不可变对象是安全。 数据访问层(Data Access Layer,DAL) 在本文中,DAL包含了服务对象、存储库、直接数据库调用、Web服务调用等。...来自用户界面的问题会更多,因为用户通常需要逐个字段填写表单。 因为存在这些限制,所以不能在构造函数和属性设置器中使用异常,就像你在其他类中使用异常一样。不过可以验证接口,为错误检查提供一些灵活性。...如果重新定义,让只包含对象级错误,那么就无法知道对象作为整体是否包含错误。 至于索引器,会怎么调用它?要访问唯一方法是将该对象转换成IDataErrorInfovariable。...由于这个错误,没有人可以实现带有批量更新支持INotifyCollectionChanged,除非他们100%确定集合类不会被用在WPF中。 因此,建议是不要试图从头开始创建自定义集合类。...文档里没有提到这些,因为没有定义一个子对象是否认为是“对象内容”一部分。个人偏好让IsChanged包含子对象变化,并为数据存储添加单独IsChangedLocal属性。

1.6K20

iOS 优化界面流畅技巧

尽量推迟对象创建时间,并把对象创建分散多个任务中去。尽管这实现起来比较麻烦,并且带来优势并不多,但如果有能力做,还是要尽量尝试一下。...这里特别说一下 CALayer:CALayer 内部并没有属性,调用属性方法时,内部是通过运行时 resolveInstanceMethod 为对象临时添加一个方法,并把对应属性值保存到内部一个...对此在应用中,应该尽量减少不必要属性修改。 视图层次调整时,UIView、CALayer 之间会出现很多方法调用与通知,所以在优化性能时,应该尽量避免调整视图层次、添加和移除视图。...做法是尽量快速、提前判断当前绘制任务是否已经取消;在绘制每一行文本前,都会调用 isCancelled() 来进行判断,保证取消任务能及时退出,不至于影响后续操作。...这个只是一个设想,并不一定能实现或起作用。 如何评测界面的流畅度 最后还是要提一下,“过早优化是万恶之源”,在需求未定,性能问题不明显时,没必要尝试做优化,而要尽量正确实现功能。

1.4K10

DBA遇到问题时30 个反应,是哪一种?

因此,如何处理修复 bug 过程也值得我们细细琢磨。 想分享一些程序员修复他们源代码时所经历想法。这是事情变得紧张时所触发轻松幽默。...浏览示例代码时,试图指出逻辑是如何工作。NOT 运算符和比较标记数量又是如此之多。经常回过头去更新自己逻辑以便于更好地适合未来做法。 8....错误信息非常有帮助,但是除非你记得不同代码意味着什么,否则读起来更像是翻译过计算机语言。值得庆幸是,有很多在线支持可以帮助我们确定这些错误信息真正含义。 19....“应该停下来,收工…… 但我真的很想解决!” 我们都有过极度灰心丧气,想要放弃感受,但总感觉半途而废不是正确选择。于是,继续埋首钻研,并尝试解决方案来调试。...有时,在你从计算机传输文件实时服务器时候,更新 PHP /Ruby/ Python / SQL 版本可以解决调试问题。本地更新很少能够帮助修复源代码中 bug,除非版本已经过时无可救药。

80320

修复

全盘负责:所谓全盘负责,就是一个类加载器负责加载某个Class时,该Class所依赖和引用其他Class也将由该类加载器负责载入,除非显示使用另外一个类加载器来载入。...双亲委派:所谓双亲委派,则是先让类加载器试图加载该Class,只有在类加载器无法加载该类时才尝试从自己类路径中加载该类。...2、这里说明一下双亲委派机制: 双亲委派机制,其工作原理是,如果一个类加载器收到了类加载请求,并不会自己先去加载,而是把这个请求委托给加载器去执行,如果类加载器还存在其父类加载器,则进一步向上委托...ClassLoader加载到正确类之后就不会去加载错误类了 ,所以可以在dexElements中将正确类放在错误前面就可以了。...对于 Native 层具体是如何操作,由于对 Native 不熟悉,此处略去不表 值得注意是: AndFix 只能修复方法级别的 bug,不能新增类和字段 由于 AndFix 是在 Native 层进行操作

88620

讨论软件架构30个共同原则

但是,如何发挥作用? 在WSO2,已经完成了八年多架构评审。WSO2拥有广泛产品组合,包括众所周知WSO2 ESB,WSO2 API Manager和WSO2 SP。...相反,设计由编写代码团队完成。建筑师修复,抱怨,策划和改进设计。我们有一个建筑团队,但他们是导游和守门人,而不是独裁者。 Gregor Hohpe在这次演讲中精美地捕捉到了这个想法。 是真的。...服务器设计和并发 原则13:了解服务器工作方式,从硬件操作系统,再到编程语言。优化IO调用数量是迈向最佳架构第一指导。 原则14:了解Amdhal关于同步定律。...原则17:除非您在客户端和服务器中都控制代码,否则完全一旦消息传递,无论失败,都很难。尝试将您系统设计更少(使用原则18)。知道大多数承诺一次交付系统会在某个地方偷工减料。...严格执行这一点可能是一个错误,特别是在新功能初始状态,其中简单功能可以级联变化,因为我们试图使一切正交。有时我们发现我们添加功能毕竟没用,然后所有额外工作都没有用。

94630

Android面试题集

View绘制流程主要分为三步: onMeasure:测量视图大小,从顶层View子View递归调用measure()方法,measure()调用onMeasure()方法,onMeasure()...onLayout:确定视图位置,从顶层View子View递归调用layout()方法,View将上一步measure()方法得到子View布局大小和布局参数,将子View放在合适位置上。...所以可以看到,整个流程是这样: 比方说我们点击跳转一个新Activity,这个时候Activity会入栈,同时生命周期也会从onCreate()onResume()开始变换,这个过程是在ActivityStack...托管绑定可见(或前台)Activity Service。 可见进程视为是极其重要进程,除非为了维持所有前台进程同时运行而必须终止,否则系统不会终止这些进程。...热修复:热修复是体现在bug修复方面的,实现是不需要重新发版和重新安装,就可以去修复已知bug。

81810

简述Redis持久化机制RDB和AOF优缺点_redisaof和rdb

后来又想了一下,这样还是不行,fork出一个子进程去做这件事,不能浪费时间。...快照运作方式: Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作: Redis 调用 fork() ,同时拥有进程和子进程。...发生这种情况时, 可以用以下方法来修复出错 AOF 文件: 为现有的 AOF 文件创建一个备份。...子进程完成重写工作时,进程发送一个信号,进程在接收到信号之后,将内存缓存中所有数据追加到新 AOF 文件末尾。...服务器要创建一个新 RDB 文件时, 先将文件内容保存在一个临时文件里面, 临时文件写入完毕时, 程序才使用 原子地用临时文件替换原来 RDB 文件。

84131

衣带渐宽终不悔!嵌入式大牛10年调Bug经验总结

一些最难跟踪bug有部分是由那些静静失败并扩展而不是抛出错误代码所导致。例如,没有检查代码却返回错误系统调用(如bind)。又如:解析代码在遇到错误元素时候只是返回而非抛出错误。...即使if语句在概念上很简单,但有多个条件要跟踪时候依然很容易出错。这些天,尝试重写代码使之更简单,以避免处理复杂if语句。 5.Else。...此外,如果在if语句分支中设置变量,那么或许在另一个分支中也要设置。与此种情况相关是标记设置情况。只添加用于设置标记条件不难,但是很容易忘了添加当标记应该再次重置时条件。...通过启动逐渐添加所需小功能,到了一些非常有用工具。自己写工具好处是,得到正是想要。 在测试中发现所有的bug,那绝对是不可能。...通常,如果调试问题花了很长时间,往往是因为做了错误假设。例如,认为问题发生在某一方法中,但事实却是甚至从来没有到达那个方法。或者,抛出异常不是以为那个。

43311

一个数据库事务 Bug 引发惨剧

告诉几百位用户他们款项已经账了,可实际上并没有! 本文最初发布于 hakibenita.com 网站,经原作者授权由 InfoQ 中文站翻译并分享。 有没有想过错误都是怎么来呢?...不是那种用简单单元测试就能捕获普通错误是第一眼看上去好像没什么问题,但回头想起来却会觉得很明显那种错误。...本文讲的是不小心向几百位用户发送了付款到账消息,实际上他们钱还没到手故事! 当你意识自己犯了错误时是什么感觉 1故事 我们系统中有一个付款流程,是向商家和其他类型用户付款用。...问题是顶级应用创建付款流程后,付款模块是在内部处理实际付款操作,顶级应用没法知道流程走到了哪一步,除非它不断监控付款模块状态。...过了一阵儿,我们开始收到用户投诉,说他们收到了大量账消息。有些人很高兴,但还有些用户打开应用查看详情,发现他们实际上没有收到钱,并意识到了这一定是一个错误

92820

任意文件移动导致Windows提权攻击分析

本文介绍了如何滥用Windows上特权进程执行文件操作来实现本地特权升级(用户管理员/系统),同时介绍了利用这些类型错误现有技术以及漏洞利用工具。...内置工具不会让创建一个硬链接到一个没有写权限文件,但实际系统调用可以让你在打开一个文件进行读取情况下进行创建。...当然,它也有一些限制:不能细粒度地 “放行 “一个访问(一旦锁解除,所有待定访问都会发生),而且并不适用于所有类型访问,但它通常非常有效。...从任意删除文件权限提升 我们谈到了任意文件读写,那么删除呢?...下表总结了我们发现错误及其状态。 ? 结论 希望这篇文章能让一些新人开始寻找与文件相关逻辑权限升级bug,以及尽可能多理由让厂商和开发者针对这类bug对其产品进行加固/修复

1.3K20

程序员遇到 Bug 时 30 个反应,是哪一种?

因此,如何处理修复bug过程也值得我们细细琢磨。 想分享一些程序员修复他们源代码时所经历想法。这是事情变得紧张时所触发轻松幽默。...浏览示例代码时,试图指出逻辑是如何工作。NOT运算符和比较标记数量又是如此之多。经常回过头去更新自己逻辑以便于更好地适合未来做法。 8.用30分钟写函数,花2小时让工作。...错误信息非常有帮助,但是除非你记得不同代码意味着什么,否则读起来更像是翻译过计算机语 言。值得庆幸是,有很多在线支持可以帮助我们确定这些错误信息真正含义。...19.应该停下来,收工……但我真的很想解决! 我们都有过极度灰心丧气,想要放弃感受,但总感觉半途而废不是正确选择。于是,继续埋首钻研,并尝试解决方案来调试。...本地更新很少能够帮助修复源代码中bug,除非版本已经过时无可救药。所以,值得一试! 29.应该更有条理并且去学习Git ……下周就去研究。 开 源版本控制包Git在程序员中非常受欢迎。

1.1K90

程序员遇到Bug时30个反应

因此,如何处理修复bug过程也值得我们细细琢磨。 想分享一些程序员修复他们源代码时所经历想法。这是事情变得紧张时所触发轻松幽默。...浏览示例代码时,试图指出逻辑是如何工作。NOT运算符和比较标记数量又是如此之多。经常回过头去更新自己逻辑以便于更好地适合未来做法。 8.“用30分钟写函数,花2小时让工作。”...错误信息非常有帮助,但是除非你记得不同代码意味着什么,否则读起来更像是翻译过计算机语言。值得庆幸是,有很多在线支持可以帮助我们确定这些错误信息真正含义。 19....“应该停下来,收工……但我真的很想解决!” 我们都有过极度灰心丧气,想要放弃感受,但总感觉半途而废不是正确选择。于是,继续埋首钻研,并尝试解决方案来调试。...有时,在你从计算机传输文件实时服务器时候,更新PHP /Ruby/ Python / SQL版本可以解决调试问题。本地更新很少能够帮助修复源代码中bug,除非版本已经过时无可救药。

45030

怎样修复 Web 程序中内存泄漏

但是,非常确定大多数不凡 SPA 都会泄漏内存,除非它们背后团队拥有强大基础结构来捕获和修复内存泄漏。用 JavaScript 太容易了,以至于不小心分配了一些内存而忘了清理。...通常,除非泄漏严重到导致选项崩溃或程序运行缓慢,否则不会从用户那里听到有关消息。 缺乏数据:Chrome 小组不提供有关网站在使用大量内存数据。网站也不是经常自己测量。...在本文中,想分享一些在解决 Web 程序中内存泄漏方面的经验,并提供一些示例来说明如何有效地跟踪它们。...这些新颖 API 非常方便,但它们也可能泄漏。如果在组件内部创建一个组件并将其附加到全局可用元素,则需要调用 disconnect() 进行清理。...还可以通过调用专有的 Chromedriver 命令 :takeHeapSnapshot 创建堆快照文件。但是这也具有上述相同限制——可能想要连续获取三个并丢弃前两个。

3.1K30
领券