最近的bug列表总结(C++)

最近写了一大段代码,抽象得厉害,容易绕进去,因为写单测的代价很大(借口),所以很多问题到联调的是否才发现。

而且花费了很大的经历才查出来,主要问题有如下几个问题

1. 变量未初始化

具体来说,就是指针之类的,这个是之前遇到的比较多,当前已经很少了,拿出来说是因为这次用上了一个栈上单例(常见的单例,一般是new一个对象)的实现。

因为对其用法理解不深,导致为初始化对象。

2. 绑定端口失败

绑定端口失败后,主线程退出了,然后在启动的线程就core掉了。从core文件分析以为是线程有什么问题,但后来不断地删除代码,最终定位是port绑定失败,换一个端口就好了。

如果早点去看日志,就不必绕这么大的弯了!!

3. 自动完成

写代码时,用到了vim的自动完成功能,导致函数一直返回-1, 示例代码如下

int Class::init(int output, int input)
{
    // arg check
    if (output_)
    {
         return -1;
    }
    .....
}

这种情况下,编译器完全没有错误提示,只能靠自己小心了。。

4.继承类调用基类同名函数

基本的实例代码如下

class Base {
public:
   int init(int output, int input);
};
class Class : public Base {
int init(int output, int input);
};

int Class::init(int output, int input)
{
    // arg check
    if (output_)
    {
         return -1;
    }

    // return Base::init(output, input)
    return init(output, intput);
}

继承类同名参数列表调用基类参数列表,本来只是想调用基类的init函数,但由于override了,所以还是会继续调用Class::init(),最终会因为递归栈深度core掉。

此时需要显示的指定调用的为基类函数.

时间: 2024-11-10 01:00:43

最近的bug列表总结(C++)的相关文章

[node 工具] 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格在线版本之一(server 端)

之前写了个 用 Node.js 将 bugzilla 上的 bug 列表导入到 excel 表格里 的 cli 工具虽然可以用,但考虑到一下几点,总觉得需要再做点什么. 界面简陋,我那截图上是在 VSCode 下的 git bash 里使用的,看起来倒还好一些.如果是在 CMD 下使用,不忍直视. 需要使用命令的方式启动,URL 地址还需要添加双引号,体验不好. 需要自行安装 nodejs 环境 因此我将这个工具做成了在线的版本,只要复制个 URL,点击开始,傻瓜操作,多人使用. 1 var e

用Node.js 将bugzilla上的bug列表导入到excel表格里

公司用bugzilla管理产品bug,最近用Node.js做了个东西,方便能够把bug的相关信息导入到excel表格里,好做后续的管理分析. 直接贴代码,写上注释好了.转载请注明出处. var request = require("request") var cheerio = require("cheerio"); var Excel = require('exceljs'); var colors = require("colors"); v

ThinkPHP 3.2.3 bug 列表(2015-1-15)

下载TP 3.2.3,将本地的TP3.2.2升级.发现一些仍未修复和新的bug(欢迎交流,如需转载,请著名来自 [email protected]): 1)文件 ThinkPHP/Library/Behavior/TokenBuildBehavior.class.php 第47行: 原代码:$tokenValue =  $tokenType(microtime(TRUE)) ; 应改为:$tokenValue = is_callable($tokenType) ? $tokenType(micr

前端之旅HTML与CSS篇之IE6常见BUG

1.IE6怪异解析之padding与border算入宽高原因:未加文档声明造成非盒模型解析解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距)解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9,9要分给文字的上面与下面,怎么分?IE6就会与其它的不同,所以,尽量避免.1)字体大小为奇数之边框高度少1px解决方法:

ie bug(如果不足,留言大家一起分享)

IE6兼容性问题及IE6常见bug详细汇总1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法:display:inline 3.以下三种其实是同一种bug,其实也不算是个bug,举个例子:父标签高度20,子标签11,垂直居中,20-11=9,9要分给文字的上面与下面,怎么分?IE6就会与其它的不同,所以,尽量避免

IE6 Bug解决方法HACK汇总

1.终极方法:条件注释<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--><!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--><!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--><!--[if IE 5.5]> 这段文字仅显示在 IE5.5. <![e

JMeter_编写脚本bugfree登录&amp;新建bug

windows环境:jdk 1.8.JMeter 3.2 虚拟机环境:Linux.Tomcat.Apache.bugfree 一.首先确保自己的虚拟机IP可以访问bugfree: 1 开启Windows下部署的虚拟机,windows下可正常访问bugfree:虚拟机IP/bugfree OK,继续往下操作...... 二.要清楚新建bug的业务逻辑 1 先自己动手实际操作一遍整体业务: 1 登录bugfree,成功登录进入buglist页: 2 点击新建bug,进入新建页面: 3 输入bug的必

IE6兼容性问题IE6常见bug

IE6兼容性问题及IE6常见bug详细汇总 来源:互联网 作者:佚名 时间:03-31 16:03:45 [大 中 小] IE6的兼容性问题一直都是前端工程师的恶梦,为了早早脱离这种困境,本文整理了一些相关兼容性的知识,感兴趣的朋友可以参考下哈,希望可以帮助到你 1.IE6怪异解析之padding与border算入宽高 原因:未加文档声明造成非盒模型解析 解决方法:加入文档声明<!doctype html> 2.IE6在块元素.左右浮动.设定marin时造成margin双倍(双边距) 解决方法

如何有效地报告 Bug

如何有效地报告 Bug 引言 为公众写过软件的人,大概都收到过很拙劣的bug(计算机程序代码中的错误或程序运行时的瑕疵--译者注)报告,例如: 在报告中说"不好用": 所报告内容毫无意义: 在报告中用户没有提供足够的信息: 在报告中提供了错误信息: 所报告的问题是由于用户的过失而产生的: 所报告的问题是由于其他程序的错误而产生的: 所报告的问题是由于网络错误而产生的: 这便是为什么"技术支持"被认为是一件可怕的工作,因为有拙劣的bug报告需要处理.然而并不是所有的b