自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

stpeace的专栏

涛哥不知何许人也,亦不详其姓字。好读书,求甚解。常著文章自娱,颇示己志。忘怀得失,有始有终......

原创 最后一次聊恶心的strtok函数

看代码: #include #include #include #include using namespace std; int Str2Vector(string str, vector &v, const char *p) { v.clear(); char *pTmp...

2016-04-25 22:55:40

阅读数 6609

评论数 5

原创 浅谈dispatcher层------内附详图

假设如下是一个写数据流程, 从用户那里过来的数据, 经接入层到了逻辑层, 然后到了存储层, 然后就往数据库中写数据了, 然后把写的结果逐步逆向返回给用户:        大家可以看看, 这里可能有什么问题? 这个写操作经常是一个比较重的操作, 用户必须苦苦等待最终结果, 那怎么优化?     ...

2016-04-17 09:27:36

阅读数 5916

评论数 0

原创 析构函数真是个好东西

我们经常需要在程序的结尾部分上报各种信息, 如果提前在每个if分支进行上报, 无疑会有代码重复: #include int fun() { int a = 1; switch(a) { case 1: // do 1 return 1; case 2: // ...

2016-04-17 08:36:48

阅读数 5841

评论数 2

原创 内存泄漏就被这样解决了

之前做嵌入式开发, 产品是卖给运营商, 最后卖到用户手中。 如果嵌入式产品出现内存泄漏或者core dump, 那是不可接受的。       现在做后台开发, 虽然内存泄漏和coredump也不能接受, 但也不是完全绝对不能接受。 之前碰到过这样一个问题: 有10台提供相同服务的服务器, 其中某台...

2016-04-17 08:21:24

阅读数 6738

评论数 0

原创 同事遇到的一个奇葩core dump问题------又是空vector惹的祸

最近, 某同事遇到一个奇葩core dump问题, 每当上线后, 半个小时左右必然core dump, 而且据说没有规律, 每次core dump的地方都不一样,  看core文件, 也没有看到有用的信息,两个同事追踪了1-2天, 没啥进展。        于是乎, 各种回退, 各种二分查找, 各...

2016-04-17 08:06:30

阅读数 6477

评论数 0

原创 一个奇葩core dump问题的“解决”

最近遇到一个奇葩的core dump问题, 搞了2个小时还没有找出原因, 各种尝试, 各种回退, 还是找不到原因。         但经测试/测试, 用另一个接口就OK,  所以我就切换成另外一个接口了, 搞定。        有两条路, 一条是错的, 一条是对的。 最理想是情况是知道错在哪里...

2016-04-16 22:09:16

阅读数 6011

评论数 0

原创 有一个进程, 在朝某ip, port发数据, 在没有源码的情况下, 如何获知ip, port是多少呢?------还是用strace啦

最近遇到这样一个问题, 有一个进程, 在朝某ip, port发请求, 在没有源码的情况下, 如何获知ip, port是多少呢?        有的朋友可能会说, 抓包啊。 但问题是, 在机器上, 其他进程也有网络包, 因此不太好过滤。 那怎么办呢?        我们可以用strace看看进程...

2016-04-16 21:54:45

阅读数 6085

评论数 5

原创 为什么打印log(比如printf)会经常碰到core dump?

在实际开发中, 我们少不了打log, 如果参数类型和个数没有完全对应, 那就等着core dump吧(更可怕的是不得不解决的低概率core dump), 为什么呢? 我们以printf为例来看看源码: int printf(const char *fmt, ...) { char buf[...

2016-04-16 00:13:08

阅读数 6818

评论数 0

原创 再聊用strace来定位没有core文件的core dump

我把ulimit -c 给关掉, 如下程序虽然core dump了, 但并不会产生core文件, 看看: #include #include int main() { for(int i = 0; i < 60; i++) { printf("aa [%d]\n&qu...

2016-04-16 00:02:05

阅读数 6367

评论数 0

转载 Linux 中用 strace 追踪系统调用和信号值 (原文棒棒哒)

间接转载地址:http://www.cnblogs.com/itech/archive/2013/02/28/2937836.html           什么是strace 打开man strace,我们能看到对strace的最简洁的介绍就是”strace – trace system ...

2016-04-15 22:46:46

阅读数 6764

评论数 2

原创 再谈用strace来看进程的动态调用-------顺便说说用strace来定位core dump

在之前的博文中, 我们了比较深入地介绍过stace的用途, 还记得当时说的strace -i ./a.out吗? 本文我们继续说strace命令: strace -p pid (注意:pid是进程号) 用strace -p pid可以看到进程执行的动态调用。 有时候...

2016-04-15 22:30:47

阅读数 6082

评论数 0

原创 开发的路上有你陪伴------core dump

最近调用了一个基础api, 结果程序core dump了, 有点纳闷, 那就硬着头皮去里面看看源码吧, 我靠, 原来是内存错误了, api访问了非法的内存。 根本原因是自己用错了, 改后即可。 我累个亲。         又有一次, 接收到了服务端的一段buffer, 但是, 自己去解析的时候...

2016-04-13 23:37:10

阅读数 5735

评论数 0

原创 从va_list、va_start、va_arg、va_end想到了vsprintf的源码

在前面的博文中, 我彻谈了从va_list、va_start、va_arg、va_end的用法, 但是, 当我看到某个程序后, 非常纳闷, 于是迫不及待得想知道vsprintf的实现。         在我的第一印象中, vsprintf貌似和vs有关, 也就是和微软有关, 所以懒得去管微软那些东...

2016-04-11 23:30:01

阅读数 6581

评论数 0

原创 把a.txt从Windows拷贝到linux引起的错误------浪费15分钟

今天碰到这样一个问题:把a.txt从windows拷贝到linux, 作为测试文件进行测试。 然而, 程序的结果大大出乎我的意料,  然后就怀疑自己的程序, 一遍一遍地检查, 发现正确无误。 此时, 才想到, 可能是文件格式个问题, 于是用dos2unix命令就解决了问题。         这个问...

2016-04-11 23:08:04

阅读数 6227

评论数 0

原创 我们来一起聊聊va_list、va_start、va_arg、va_end

在C/C++中, 经常会接触到变参, 也就是va(variable argument), 我们的printf函数就是这么做的。 搞过软件开发的人肯定知道, 几乎所有软件的日志函数, 都会采用变参。 下面, 我们来一起聊聊va_list、va_start、va_arg、va_end ...

2016-04-10 23:21:55

阅读数 6690

评论数 0

转载 几种软负载均衡策略分析

转自:http://blog.csdn.net/erlib/article/details/50994209 公司去年上了F5,好用是好用,但是费用太高昂了,所以最近一直在研究软负载均衡这一块儿,恰巧今年年初谷歌开源了seesaw,让自己可以绕过很多弯路。特此总结下之前了解的负载均衡策略。 ...

2016-04-10 22:10:07

阅读数 9963

评论数 0

原创 C++的vector居然没有find成员函数啊, 那就用泛型find吧

#include #include #include using namespace std; int main() { vector v; v.push_back(1); v.push_back(2); v.push_back(3); if( find(v.begin()...

2016-04-10 12:42:59

阅读数 10822

评论数 0

原创 《C++ Primer 》第五版 Stanley B.Lippman

C++ Primer是非常非常有名的, 当时在读书的时候, 很多同学都买了这本书, 我也不例外, 那时应该是第四版, 毕业后就送人了。        2015年打算换工作, 所以就提前买了一本新的,慢慢啃,补补C++中的一些盲点。        在我换工作之前, 已经非常认真仔细地看了一大半。 换...

2016-04-09 23:18:43

阅读数 6839

评论数 3

原创 inet_ntoa之坑------再谈不可重入函数中的static

不想用过多的话语来啰嗦, 还是看代码吧(如下结果非常让人吃惊): #include #include #include #include #include int main() { unsigned long n1 = inet_addr("10.213.120.1...

2016-04-09 19:31:09

阅读数 8270

评论数 2

原创 《我编程, 我快乐------程序员职业发展之道》 Chad Fowler

在学校的时候, 就是书虫, 还差点成了书呆子, 幸亏老伴经常托我出去玩        当时看《我编程, 我快乐------程序员职业发展之道》, 感觉扯淡的东西好多。 最近又翻了一遍, 结合自己工作两年多的经验, 发现还是有很多可以借鉴的地方。        其实, 很多时候, 大道理大家都明...

2016-04-09 18:42:41

阅读数 6461

评论数 1

原创 《未雨绸缪:理解软件配置管理》 董越

两年多前, 我刚毕业的时候, 去了某公司, 据说是分配我做一个软件配置管理的岗位, 主管找我聊了一下, 我表示还是想写点代码, 不想做软件配置管理。        当时不知道最后分配自己干啥, 那就看看软件配置管理具体是个啥东东, 于是买了这本书。 尽管后来确实没有搞这个方向。    ...

2016-04-09 18:23:17

阅读数 7108

评论数 0

原创 结对编程------扯淡者的游戏

不知什么时候, 弄了个结对编程这个概念。 2013年的时候, 我还玩过结对编程, 感觉完全没法玩。        结对编程的最大好处是提前提高软件质量, 很多调查研究鼓吹整体效率很高, 然并卵。        据我所知, 无论是国内还是国外, 几乎没有哪个公司大规模用结对编程。 一些搞...

2016-04-09 18:06:00

阅读数 5728

评论数 0

原创 《IPTV技术与运营》万晓榆

书没啥深度, 有点泛, 适合偶尔吹水。我自己也搞了两年这个东东呢。       今天整理书籍, 再次看了一遍。 现在不搞这个了, 以后也不会再看该书了, 送人。       很早以前, 在某公司实习(老师开公司), 公司才10来个人左右, 让学生出书, 尽是什么物联网之类的忽悠东西, ...

2016-04-09 17:48:08

阅读数 6959

评论数 0

原创 memset是core dump高发区

之前博文中说过memset引起的core dump问题, 也说过memset的误用。         由于memset与内存操作直接相关, 所以是core dump问题的高发区, 最近碰到一个访问其他内存的低概率core dump问题, 就与memset有关。         其实, 何止是mem...

2016-04-07 23:15:26

阅读数 7074

评论数 5

原创 又是打印log引发的core dump------类似printf("msg is %s", 1);

之前在博文中说过与打印log相关的core dump, 参数个数、顺序、类型必须完全匹配。          一不小心, 随便打个log,  系统core dump了, 呵呵哒。          今天, 某哥在打印log的时候, 参数没有匹配, 结果程序低概率core dump,  幸好没有...

2016-04-07 23:04:53

阅读数 5770

评论数 0

原创 php中的in_array函数

在PHP中, 要判断一个元素是否在数组中, 我还准备用C/C++思维, 后来想, php中不可能没有此类函数, 于是乎: <?php $arr = array("123", "world"); if(in_array("12...

2016-04-07 22:59:03

阅读数 5851

评论数 0

原创 祝贺老伴找到心仪的工作

祝贺老伴找到心仪的工作, 明天开始上班, 棒棒哒

2016-04-04 23:07:14

阅读数 5911

评论数 0

原创 程序core dump了要记得保留现场

抓到了core, 用gdb xxx core分析, 用bt可以看出堆栈信息。 顺利。         用f命令进入帧, 然后可以用i locals命令查看详细信息, 顺利。         但是, 过了一段时间后, 再次用f命令进入帧, 发现用i locas命令看不到信息了, 为什么呢? 因为当时...

2016-04-04 22:53:59

阅读数 6096

评论数 7

原创 典型的错误码和错误信息匹配代码------本质就是key value匹配

在实际开发中, 经常设计错误码和错误信息, 这么来搞吧: #include #include using namespace std; enum { ERR_XXX1 = -10001, ERR_XXX2 = -10002, }; typedef struct _ErrMsg { ...

2016-04-04 22:38:53

阅读数 6360

评论数 0

转载 使用Fiddler对手机应用进行抓包测试 (试了一下, 靠谱)

转载地址:http://www.biaodianfu.com/use-fiddler-test-apps.html 抓包工具FiddlerWIFI共享工具:猎豹免费WIFI (使用360WIFI等均可,只要保证在同一局域网下就都可以,连接同一个路由器也可以)        现在开始真...

2016-04-02 23:11:19

阅读数 10400

评论数 0

原创 完美主义容易导致效率低下

以前自己在用头文件的时候, 一定是恰好, 不太喜欢包含了一些实际并没有用的头文件。 这是典型的强迫症和完美主义啊, 有个卵用, 做事速度慢得要死。        现在呢, 就疯狂包含, 管你多了还是怎样, 让程序跑起来, 然后正确,才是第一要务。         其他的事情也是一样, ...

2016-04-02 22:46:51

阅读数 6067

评论数 2

转载 fiddler composer创建和发送HTTP Request (文后附我自己的补充)

转载地址:http://www.cnblogs.com/TankXiao/archive/2012/12/25/2829709.html 之前已经写过两篇Fiddler的文章了,分别是【Fiddler教程】 【Fiddler script用法】。  我准备把Fiddler写成一个系列。 F...

2016-04-02 22:35:48

阅读数 7756

评论数 0

原创 makefile基础库变化的感知

某基础库变更后, 在业务代码层执行make all没有任何反应, 需要先make clean一下, 再make all.        上次遇到过头文件变更, 没有重新make clean导致了core dump, 所以, 头文件变更后, 也make clean一下吧。

2016-04-02 10:40:33

阅读数 5644

评论数 0

转载 Make 命令教程

转载地址:http://www.ruanyifeng.com/blog/2015/02/make.html        作者:阮一峰 代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。 Make是最常用的...

2016-04-02 10:29:37

阅读数 6077

评论数 0

原创 《程序员面试宝典》 欧立奇

最近整理书籍, 看到了4年前买的这本书, 呵呵哒, 作为速成的面试书, 这本还算不错的。 虽然俗气, 但接地气。        今天大概过了一遍, 以后不打算再看了, 纪念一下。

2016-04-02 10:12:34

阅读数 6912

评论数 4

原创 两例网络超时的定位

第一例:        好好的逻辑, 低概率出现异常, 根据log记录, 显示进入网络错误分支。虽然在上行操作一路成功, 但咋下行没有收到回包。 经分析, 几乎肯定是网络超时。        第二例:        也是体现网络超时的症状, 结果发现, 目的ip port对应的机器根本不存在。...

2016-04-02 09:57:07

阅读数 6107

评论数 2

原创 火眼睛睛查coredump(stl sort)------永远让比较函数对相同元素返回false

看看如下代码的一个非常隐晦的错误, 虽然不会每次core dump, 但类似代码迟早会core dump, 好多人遇到过。 此问题极难定位, 看一下吧: #include #include #include using namespace std; struct Msg { in...

2016-04-02 00:19:50

阅读数 6540

评论数 5

原创 为什么memset(szBuf, 0, sizeof(szBuf));会莫名其妙core dump?

最近写了点代码, 结果程序必然core dump, 用gdb分析了, 定位在fun函数的这里:memset(szBuf, 0, sizeof(szBuf));    其中szBuf的定义是char szBuf[102400] = {0};        真是让我百思不得其解, 这里绝对没有越界啊。...

2016-04-01 23:54:26

阅读数 6729

评论数 0

原创 gdb调试之 f 1 , i locals, i args, i catch ------ 并用这些来调试core dump

先不多说, 看代码: #include #include using namespace std; void inner(int xx, int yy) { int a = 1; int b = 2; char *p = NULL; memset(p, 0, 1); } void ...

2016-04-01 23:24:48

阅读数 8339

评论数 1

提示
确定要删除当前文章?
取消 删除