您的位置:首页 > 编程语言 > C语言/C++

【Todo】C++类 & 通用面试题分析记录 & 最难的bug

2016-12-02 16:33 218 查看
1. the most difficult bug u fixed and how u solved this problem..

解决过很多疑难bug。最困难的分为两类。一类是并发、多线程类的,因为bug的出现依赖于一定的时序,难以复现;看到的是被破坏的现场。线程安全类问题很多发。

另一类是对外部系统有依赖的,很多错误出在依赖的框架或者库里面,而这时候需要根据框架和库报出来的log来分析问题,很多时候报出来的不一定准确,搜索引擎也找不到解决方案。要去读一读源码。

还有一种是缓存类的bug。这个缓存可能是字符串中残余的内容,也可能是Redis中的数据没有刷新。

另有一些具体的,比如开始用稳定排序,工作正常;依赖库或者函数变成不稳定排序后,就会出现问题。

还有一类bug是字符编码问题,比如有的中文编码始终是有问题的。

很多bug,解决了之后,都发现,其实很简单。但是当时,却真的要查很久。

今天有一个实际的bug,就是关于指针指向的处理。有一个问题现象很诡异,查了一个晚上,原来在回收资源的时候,一定情况下有一个指针的指向没有置为NULL,而这个资源并没有完全废弃,下次会被重复利用,然后这个原始的错误的指向就可能带来问题。

还有一个bug,定时到12点就发生返回的结果有问题,开始以为某些跟时间相关的函数造成的,日志打的也不错,也不core,后来加了日志,看了发现原来是依赖的上游文件,12点推送过来,开始是空的,而处理这个文件的逻辑有问题,全空的时候,结果就会有问题,但是如果不是全空的话,就能够正常处理。所以还是依赖于外部的一个bug和fix。

补充问题:调试方法?

这篇文章有一些关于gdb, 多线程以及pstack, gcore, strace等命令的使用调试方法:

http://www.cnblogs.com/charlesblc/p/6256912.html

2. describe a group project u worked on and your contribution.

I lead a team. 广告、电商、百度购物、百度返利,夺宝。

1:虚函数原理?有何用?(辅助实现设计模式)
虚表,编译器绑定到虚表中的指定项。
同样虚函数也如此,编译器已经算好了虚函数在虚表中的位置。只是由于只是由于每个类的指向虚表的指针不一样,才产生了多态的行为。

2. 调试内存泄露的方法:

3. 为什么哈希桶一般是质数:

其实是为了避免不好的哈希算法导致的桶分配不均,变成质数,稍微好一些。比如按照最后取余来哈希的,如果是一个合数,桶的分配容易形成规律。

但是一般都用好的哈希算法。常见的哈希算法见这篇文章:http://www.cnblogs.com/charlesblc/p/6130141.html 其中加法哈希就需要桶数为质数。

这里说了一下:https://www.zhihu.com/question/20806796/answer/21359160
首先来说假如关键字是随机分布的,那么无所谓一定要模质数。但在实际中往往关键字有某种规律,例如大量的等差数列,那么公差和模数不互质的时候发生碰撞的概率会变大,而用质数就可以很大程度上回避这个问题。
质数并不是唯一的准则,具体可以参考以下网站。
good hash table primes

epoll与select/poll的区别:
详细可以看这篇文章:http://www.cnblogs.com/charlesblc/p/6137169.html

提到网络效率的总结:
http://www.cnblogs.com/charlesblc/p/6260416.html

原子操作方面的知识:
http://www.cnblogs.com/charlesblc/p/6142443.html

共享内存基本操作:
http://www.cnblogs.com/charlesblc/p/6142139.html
共享内存深层次知识:
http://www.cnblogs.com/charlesblc/p/6261469.html

线程同步之条件变量与互斥锁的结合:
http://www.cnblogs.com/charlesblc/p/6143397.html

虚继承、重载覆盖隐藏的讨论:
http://www.cnblogs.com/charlesblc/p/6206039.html

实现memcpy题目的一些注意点:https://my.oschina.net/renhc/blog/36345
1. 注意拷贝位置重叠
2. 注意效率(memmove能解决重叠问题,但是效率低)

中断知识、中断与异常的比较
http://www.cnblogs.com/charlesblc/p/6261741.html

系统调用相关知识:
http://www.cnblogs.com/charlesblc/p/6261905.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: