自定义博客皮肤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的专栏

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

原创 来来来, 出个面试题考一下你的实际开发经验

来来来, 出个面试题考一下你的实际开发经验(伪代码): #include <iostream> using namespace std; int main() { API_LOG(.......................); API_LOG(...................

2016-07-24 23:00:34

阅读数 6142

评论数 2

原创 一个低概率core dump问题的定位------打印log时访问了长度为0的vector

昨天遇到一个低概率core问题, 于是展开定位, 决定边抓包变等待core.        于是, core来了, 用i locals看到了变量的值, 提取对应的关键字(qq号码), 然后根据这个值找到对应的网络包, 然后就发现是app的网络请求有问题。 app的请求参数填写错误, 导致后台这边取...

2016-07-24 15:23:10

阅读数 5801

评论数 0

原创 gdb调试core时打印出当时变量的内容------有时可以主动制造core来看变量值

有时候, 在特殊需要时, 我们可以让程序主动core掉, 来查看当时的内容。 本文来玩玩这个: #include using namespace std; class Point { public: int x; int y; }; int main() { int a = 1; ...

2016-07-24 14:59:44

阅读数 11314

评论数 1

原创 gdb调试core时能用i locals看栈变量、函数行(即不出现No symbol table info available)的必要条件: 1. 编译时有-g参数; 2.so库未被strip脱衣服

我们已经很熟悉用gdb来调试core了, 对于一个完整的core(需要有对应的so), 调试core很简单, 但最近遇到这样一个问题: 用gdb调试过, 能查到core在哪个函数里面, 但是, 无法知道core在哪一行, 用i locals, i args查询显示No symbol ...

2016-07-24 12:41:55

阅读数 11491

评论数 0

原创 core文件被截断了(core文件存在, 但很小)该怎么办?

在app开发中, 我们绕不开的问题就是crash, 相信大多数人都有类似体会, app用着用着就闪退了。        在linux开发中, 我们绕不开的问题是core, 今天又来聊聊这个问题。        之前我们讨论过, 当程序产生段错误core了之后, 不一定产生core文件, 此时我...

2016-07-24 12:11:08

阅读数 7940

评论数 0

原创 代码的正常分支需要打印log吗?

之前做某嵌入式开发, 大家养成的习惯是, 正常分支不打印log,  我觉得这是十分扯淡的。 到底要不要打印log, 是根据定位问题的需要来确定的, 而且, 不能让log在那里刷刷刷。       当然, 这还牵涉到一个log级别的问题。       总之, 法无定法, 唯一的法则是: 方便自己...

2016-07-24 11:27:44

阅读数 5614

评论数 0

原创 再谈用strace函数来查看网络发包的目的地ip和port

去年刚入职的时候, 为了查一个对端的ip和port(问对端的人, 不鸟我啊), 于是我搞了很久, 没有结果, 最终是别人用别的方法帮我搞定了。         现在想来, 其实一个strace命令足以解决问题, strace -p xxx         最近又遇到一个类似的问题, 本serv...

2016-07-21 23:45:05

阅读数 6286

评论数 4

原创 fwrite与xxd这对黄金搭档帮我定位出乱码问题------无法打印日志时如何打日志?

最近需要把txtinfo上报到罗盘, 但发现, 英文还行,但中文出现乱码, 不用多想, 这几乎就是gbk和utf8的问题, 接下来便是验证这个猜想了。       可问题是, 打印呢log的函数失效, 没法直接打印log验证, 那怎么搞呢? 用fwrite来写到文件, 然后用xxd来查看。    ...

2016-07-21 23:37:05

阅读数 5703

评论数 0

原创 文件名中不要使用空格

前些天, 某些图片不显示, 最后定位到的问题的是: 运营同学在上架图片时, 命名中有空格。          不多说, 除了如下两句:         1. 作为开发人员, 应该检验文件名空格问题, 并给予提示。         2. 作为运营人员, 上架后, 不自测一下么? 另外, 对空格也有一...

2016-07-21 23:30:00

阅读数 8582

评论数 0

原创 修改封闭、扩展开放原则

最近有位新同学想修改某一接口, 以满足特定需求, 后台这个方案被他们组的老鸟否定。        于是, 我想到了一句话: 修改封闭、扩展开放!

2016-07-15 22:25:34

阅读数 5950

评论数 0

原创 linux下的free命令和top命令

可以用free命令来查看内存使用情况, 当然也可以配参数, 比如free -m 是以M为单位来显示。        top是一个动态命令, 可以查看进程和内存的动态情况, 当输入top后, 信息在动态显示, 此时如果输入M, 则是按进程使用内存大小来排序, 如果输入P, 则是按照进程占用cpu的...

2016-07-15 22:13:59

阅读数 5822

评论数 0

原创 一个根据关键字(如qq号码)来过滤序列化网络包的重要命令------awk和sed同时登场

当数字88888888序列化后在网络上传输, 通过网络抓包, 保存在a.txt中, 那怎么过滤查找88888888呢? tcpdump -iany port xxx -Xnlps0 > a.txt 为了完备性, 需要先后考虑如下两条命令(考虑各种可...

2016-07-15 00:07:53

阅读数 5994

评论数 0

原创 linux中如何以一个命令的输出作为另外一个命令的输入---用``

在linux中, 我们经常用到xargs命令, 这个命令很重要, 它可以以一个命令的输出作为另外一个命令的输入, 其实, 用``也能实现类似功能。 请注意这个符号, 它不是引号, 而是倒引号, 它在电脑tab键的上面一个键。         比如: cat a.txt | grep `print...

2016-07-14 23:49:43

阅读数 13070

评论数 0

原创 又是缓存惹的火------从tcpdump -iany port xxx -Xnlps0 | grep yyy | grep zzz 说起

最近遇到这样一个百思不得其解的问题, 在linux上, 用tcpdump -iany port xxx -Xnlps0 | grep yyy 抓包过滤, 能看到该行有zzz, 但是, 如果用sudo tcpdump -iany port xxx -Xnlps0 | grep yyy | grep ...

2016-07-14 00:01:45

阅读数 7406

评论数 0

原创 经验与教训: 禁止在linux编译目录下用Windows方式备份文件;禁止在linux编译目录备份成以.cpp结尾的文件名

我们知道, 在协同开发时, 没有特别情况, 不要经常更新自己的编译目录,否则会被各种编译问题困扰, 相信大家都有过血与泪的教训。        最近, 我想在自己编译目录下修改一个文件, 不妨设文件名为test.cpp.  我是在Windows上用samba映射到linux上的。 为了备份一下te...

2016-07-12 23:53:46

阅读数 5921

评论数 0

原创 linux命令之间的分号,&&, ||

在用linux命令时候, 我们经常需要同时执行多条命令, 那么命令之间该如何分割呢?       分号: 顺序地独立执行各条命令, 彼此之间不关心是否失败, 所有命令都会执行。       &&  : 顺序执行各条命令, 只有当前一个执行成功时候, 才执行后面的。      ...

2016-07-10 11:57:32

阅读数 14122

评论数 0

原创 php语法检查工具------http://www.trisunsoft.com/free-web-tools-online.htm (当时没有用工具,导致浪费10分钟)

最近写了点php代码,改动不小(主要是字符串替换), 我当时就担心, 要是出了语法问题, 多了或者少了一个符号, 那就呵呵哒了。         果不其然, 一放到机器上运行, 页面就打不开, 这肯定是语法出问题了。        由于不知道怎么看php语法错误, 我居然就想着去用svn去看自己的...

2016-07-10 11:46:01

阅读数 12651

评论数 2

原创 所想即所得的linux用起来果然爽------比如用linux命令过滤

常常听人说,linux用起来是所想即所得, Windows是所见即所得的, 各有优缺点, 此言不假。  下面来看一个关于过滤的问题:        最近要对文本进行过滤统计, 过滤条件还很多, 在linux上, 用各种命令配合管道轻松搞定。        我想, 这要是在Windows上, 比...

2016-07-10 11:34:14

阅读数 5951

评论数 0

原创 qua数据统计缺失问题之终结

前面说过, qua从前端传到后台, 后台上报罗盘过程中有丢失, 经历一番定位后, 发现前端有丢失, 于是推动前端同学补。 那后台在内部模块之间透传, 是否会有丢失呢? 我武断地认为, 代码中qua是透传的啊, 肯定不会有丢失啊, 但是, 罗盘同学反馈, 数据丢失得离谱。 于是, 我...

2016-07-10 11:24:10

阅读数 5550

评论数 0

原创 记录最近用到的一个简单的正则表达式

最近要统计数据, 统计qua的总量, 为空的数量和不为空的数量, "qua="这个位于文本行的最后, 所以可以用如下方式统计(很简单, 只为了熟悉一下正则表达式): cat a.txt | grep "qua=" | wc -l ca...

2016-07-10 11:11:20

阅读数 5553

评论数 0

原创 外网全量机器抓包/日志

外网的一些服务, 通常需要多台机器来承担(有时候是数百台), 机器之间受到负载均衡机制的制约, 某一请求过来后, 无法准确知道会到哪台机器上, 所以感觉是无法抓包的,很多时候就放弃了在外网机器上去抓某一请求的包。       但是, 如果该服务的机器不多, 那就可以在外网所有机器上抓包。 ...

2016-07-10 11:02:46

阅读数 6260

评论数 0

原创 又是文件中的不可见字符问题

不久前, 需要在配置文件中增加一项配置, 把默认的error级别的日志开关换为debug级别的日志开关, 于是就增加了该项。       然后, 这并没有起到卵用, 明明是加这个配置啊, 明明是这个值啊, 为什么不生效呢? 难道系统读的不是这个配置文件? 正纳闷时, 某哥提醒: 可能是添加处格式不...

2016-07-10 10:51:28

阅读数 6122

评论数 0

原创 文件中的不可见字符问题

最近, 某管理端系统用得好好的, 结果, 某同学一用, 就出问题了, 于是我展开定位。       最后发现, 是导入文件中有特殊的不可见字符, 原来如此, 看来管理端的兼容性不够, 于是就引出两种解决方法:       1. 增强兼容性。       2. 鉴于系统只有少数特定人用, 于是我给他...

2016-07-10 10:40:48

阅读数 7061

评论数 0

原创 什么是第三方库/程序?

那一年, 还在学校读书, 出来实习, 第一次听说第三方库/程序, 于是就想: 第一方和第二方是谁呢?        比如, 我们在ios上开发app,  可以认为第一方库/程序就是apple提供的库/程序(sdk api), 第二方库/程序是我们自己的基础库/程序, 第三方库/程序是别人提供的库...

2016-07-10 10:35:31

阅读数 10596

评论数 0

原创 linux performance observability tools, 好形象啊

一朋友在朋友圈发的图, 很好啊: linux commands:

2016-07-10 00:51:23

阅读数 6485

评论数 0

原创 samba映射拷贝比linux sz命令快多了

在实际开发中, 经常需要把so库导到Windows上, 我们可以用linux的sz命令, 但慢的要死, 还是用samba映射搞起吧, 直接拷贝, 快, 爽爽哒。       其实, 我们之前也大致讨论过这个东东, 都是小经验!

2016-07-07 23:46:45

阅读数 6141

评论数 2

原创 都是缓存惹的火

在实际生活和开发中, 我们都会遇到迟延生效问题, 其中有很多与缓存相关。  有缓存, 那就不实时。       1. 修改个csdn博文, 还有缓存时间呢.。       2. 领导批准某东东后, 我们去刷新, 不一定能立即看到结果, 不要急着催领导, 要考虑迟延生效哈。       3. 修改了...

2016-07-07 23:41:58

阅读数 5682

评论数 0

原创 再谈makefile指定头文件和库出错的那点破事(折腾了0.5小时)------三个月后发现了真正原因

在文章http://blog.csdn.net/stpeace/article/details/50985578中, 我对makefile指定头文件和库出错的那点破事进行了详细总结, 基本能搞定大部分情况。在本文中, 我来说说自己最近在某新模块中遇到的一个makefile编译错误。        ...

2016-07-07 23:33:18

阅读数 6094

评论数 0

原创 find -name a.txt的误用(没考虑软链), 导致浪费0.5小时

假设当前目录是/data,  在这个目录下有1000个“文件夹”目录, 名字分别为0-999, 用cd可以进入, 比如cd 999就进入了999这个目录, 在这1000个目录下, 都有a.txt文件。 为了对这些所有的a.txt文件进行统计, 我用了如下命令:       find -name a...

2016-07-07 23:17:56

阅读数 5697

评论数 0

原创 在服务的入口req处报流水还是在出口rsp处报流水?

req处报流水的优点:         1. 直接, 不担心后续修改了某些变量;          2. 解释在后续过程中程序core dump了, 流水也不会丢失。         rsp处报流水的优点:         信息更全, 可以获取rsp的值和返回值。    ...

2016-07-03 10:38:36

阅读数 5763

评论数 0

原创 map按value排序, oh my god

最近, 某同学修改了一点代码, 我review一下, 当时没细想, 结果就呵呵哒了。         map m;         企图按Tye进行排序, 然后塞入到新的map中去, 只会徒劳。 map可是按key进行排序的啊。         如果真的要按value排序, 那还是用之前介绍...

2016-07-03 10:27:43

阅读数 5971

评论数 0

原创 如何验证linux进程打开文件数的默认最大值(通常是1024)? 知识点: ulimit; watch -n 1 'ls -l /proc/xxx/fd | wc -l'

曾经在某公司的笔试题中出现了这样一个题目:linux进程打开文件数的默认最大值是多少? 我当时想, 这不是为难人么? 谁记得住呢? 用ulimit命令查一下不就知道了么? 其实, 本题不过是在考一个简单的常识。 这种题放在校招题目中, 毫无意义, 如果是社招, 那倒是情有可原。        我...

2016-07-02 12:13:22

阅读数 7840

评论数 0

原创 如何在linux命令行(非脚本)中循环执行命令------相见恨晚的watch命令

无论是linux开发, 测试还是运维, 很多时候, 我们需要监控状态的动态变化, 比如, 要看内存的使用情况, 可以用free命令, 但问题是, 必须每次手动不停地去执行。 有的朋友可能说, 用top啊。 这样确实可以, 但是, 很多时候并没有动态命令, 貌似只能苦逼地不断手动执行, 直到遇到wa...

2016-07-02 11:46:16

阅读数 12759

评论数 2

转载 关于 "can't identify protocol" 问题的定位

转载地址:http://blog.csdn.net/tspangle/article/details/20543329       转载地址:http://blog.sina.com.cn/s/blog_62ec29160101qus8.html       感谢两位作者! 问题定位步骤:...

2016-07-02 10:38:53

阅读数 6817

评论数 0

原创 聊聊进程异常重启的问题------顺便详解linux句柄泄漏问题的定位(知识点: lsof -p xxx; ll /proc/xxx/fd)

之前做过嵌入式开发, linux环境玩代码, 这玩意儿最终是卖给用户。 产品一旦到用户手上, 要修复bug的代价就很大了, 而且, 由于是用户(个体)触发, 所以很多问题是不太好暴露出来的。 比如某些场景下的低概率core dump,  内存积累式泄漏, 句柄积累式泄漏。         现在做互...

2016-07-02 09:53:09

阅读数 10749

评论数 4

原创 聊聊纠结了大半天的qua数据上报不一致的问题------经验:1. 思路很重要;2.map的下标操作要当心

遇到这样一个问题:       前端传qua参数给后台, 后台将此参数上报到罗盘, 例如: 前端给的数据是qua=xxx, 那么, 后台需要把对应的key(qua)和value(xxx)上报到罗盘。 但出问题了, 且看PK过程:              第一轮PK:       罗盘同学: 罗盘...

2016-07-01 23:51:02

阅读数 6229

评论数 0

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