多线程调试的一点技巧

多线程调试的一点技巧

最近几天遇到一个问题,程序在客户的虚拟机中跑了几分钟就不响应了。这实在是很无厘头的一件事情,因为在实体机以及相同配置的虚拟机里,居然无法重现这个问题,而客户几乎每次都重现。

问题本身不复杂。SIP协议栈收到SIP消息后,产生内部数据放入队列,同时通知UA进行处理。诡异的地方在于:UA层居然没有任何反应。初步判断是线程挂住了,可是不知道是什么原因导致的。于是乎各种修改、各种debug、各种打印都用上了,始终不得其解。

google了相关主题后发现其实也挺简单,使用gdb就可以(原谅一个一直使用IDE的人吧),比如程序名是mss:

(1)查找mss当前的pid:ps -A | grep mss

(2)假设pid为1234,则使用gdb调试:gdb mss 1234

(3)进入gdb后,使用bt命令即可查找当前堆栈情况,了解程序卡在什么位置。

(4)也可以使用info threads了解程序各线程的状况。

太贵了

太贵了

这几天心情不太平静,总有一点小感慨,尤其是临近年末,又有些回想的味道。

先回顾一下产品(单指miniSIPServer而言)今年的销售情况,毕竟是年末了嘛。今年在大陆地区的销售比去年好很多,但是我仍然非常沮丧地发现:还不够好。“不够好”到什么程度?以亚洲地区为例,大陆地区的销售额甚至远远低于泰国。是的,你没有看错,泰国!为此我特意google了一下泰国:中国人口大约是13亿,泰国人口大约是6700万,也就是大陆的1/20人口。

这实在是个让人感觉很纠结的结果。网上(QQ、email等)和一些客户有些交流,普遍反馈:产品是不错,就是太贵了。这就让人更纠结了。同样以泰国为参照,所有订单都来自我们的英文网站,也就是说客户是按照国际统一价格购买。而中文网站里的标价比英文网站至少优惠了20%。

而英文网定价与业界同行相比,都极具性价比优势。这点从各地用户的反馈信息来判断,我们还是很有信心的。因此“太贵了”究竟是与什么比较而言呢?我个人判断是和免费的各类产品比较,比如freeswitch、asterisk等。此类产品先不论品质如何,至少需要花费大量的时间和精力去学习和了解。从我加入的几个QQ群也可以看到,大量的问题都是一些配置方面的问题,而如果采用miniSIPServer,这些根本就不是问题,或者说只需要点点鼠标就能搞定的事,完全不需要花那么多时间。

单纯追求产品的免费是毫无意义的。时间成本、维护成本等后期成本也是需要考虑在整个成本当中,而朋友们似乎更关注产品的一次性购买成本。如果是专业人士也就罢了,可以花费时间和精力去学习、掌握这些开源的系统,甚至可以定制系统。而如果仅仅是一般使用者,有这个必要么?有这个时间和精力,为什么不花在更有价值的地方呢?

优质的产品(无论是软件还是硬件)都应当值得合适的价格,而我们也将一如既往地追求产品的高品质。新的一年也希望有机会更贴近客户,提供更合适的产品,取得更好的成绩。

2014-12-11 updated: 感觉自己有点矫情了。价格固然是个重要的因素,更关键的应该是产品还没有抓住客户的痛点。客户在比较时,可能会觉得,这个产品虽然不错,但是其他产品也有这功能,无非就是花点时间而已。

webRTC调试方法小结

webRTC调试方法小结

前段时间完成了miniWebPhone V1版本的开发,基于Chrome浏览器,采用了webRTC技术。在开发过程中,发现其实webRTC技术使用起来还是不太方便,有很多让人感觉很困扰的地方。基本上只有VoIP领域专家才能明白诸多操作以及参数的意义,即便是这样,仍然需要根据Chrome的输出信息来了解Chrome中webRTC的各项细节。

有几种方法可以了解webRTC过程中的细节信息。

方法1:chrome://webrtc-internals/

这个方法是最简单的。在Chrome地址栏中输入上述命令,即可了解webRTC的过程。不过这种方法输出的信息非常粗略。如果您对webRTC很熟悉,那么可以从中了解一些有用的信息。如果您对webRTC不熟悉,那TA的信息您肯定看不明白。

方法2:chrome日志

这种方法我经常使用,而且推荐在linux环境(例如Debian)中使用。实际上,我不知道windows系统下如何看Chrome的日志。Chrome的日志很详细,基本上会输出每个步骤详细的信息。

在linux终端窗口用以下命令启动Chrome即可:

google-chrome --enable-logging=stderr --log-level=4 --vmodule=*libjingle/*=3,*=0

方法3:Chrome源代码

日志可以帮助我们了解大部分webRTC的细节,但是webRTC某些实现仍然是有问题或者说让人困扰的(例如对ICE的处理主、被叫流程不一致,错误处理没有输出日志等),此时直接看代码就是比较好的解决方法。完全、彻底地阅读Chrome是个不可能完成的任务,只能结合Chrome日志去追踪相应的代码。

SSLv3漏洞

SSLv3漏洞

这次是Google发现的一个漏洞,而且又是一个很严重的漏洞。现在暂时还没有补丁解决,但是可以关闭apache的SSLv3来屏蔽这个漏洞。修改方法如下(Debian7.x环境):

修改/etc/apache2/mods-enabled/ssl.conf文件, 找到SSLProtocol所在行,去掉SSLv3即可

SSLProtocol all -SSLv2 -SSLv3

最后当然需要重新启动apache。

windows7开始菜单项整理

windows7开始菜单项整理

最近安装和试用了一些软件(例如qq输入法),卸载之后在【开始】菜单中留下了一些垃圾文件夹,看着很不爽。于是打算删之。一试之下才发现与XP系统有很大差异。【开始】菜单实际上分布在两个不同的地方:系统【开始】目录以及用户自己的【开始】目录。

比如我的用户名是yxh,那么如果需要整理开始菜单栏,则可能需要修改以下两个目录:

C:\ProgramData\Microsoft\Windows\Start Menu
C:\Users\yxh\AppData\Roaming\Microsoft\Windows\Start Menu
香港怎么了?

香港怎么了?

前段时间大陆小孩在旺角街头拉了泡尿,港人如此激动,言必称法制!

同样是在旺角,现在港人占据街道、阻塞交通、冲击警察、辱骂他人,法制不知道到哪里去了,变成“爱与和平”?!

2014-10-23 updated: 早上看到一条新闻, 我都吓到了: 部分港人居然会想用孩童做肉盾. 新闻链接如下: http://news.sina.com.cn/c/2014-10-22/111131027451.shtml

三体

三体

这两天什么事都没做,就顾着看这几本书。的确是好书,印象中已经有很多年没有看过小说了,三体的确是很吸引人的科幻小说,是我非常喜欢的风格。

看完之后感觉还是有破绽:三体在发现人类文明后,为什么不直接向宇宙公布地球的位置坐标呢?非得大老远地跑过来灭掉地球?向宇宙发送地球坐标对三体文明而言,应该是非常简单的事,这点科技甚至连地球文明都能做到。

2014-10-23 updated: 嗯, 逻辑没有破绽. 三体星人处在悲惨的轮回中, 迫切希望跳出这个轮回, 因此当发现地球文明时, 想到的是占有而不是摧毁, 目的是拯救三体自己的文明.

 

2013-2014 香港新界元朗、屯门小学实力排名

2013-2014 香港新界元朗、屯门小学实力排名

原文链接:http://blog.sina.com.cn/s/blog_b07a0b080101ejc7.html

现在记录这些显得有些早了,全当看看了解香港教育的一面吧。资料来源:香港专业教育出版社《香港522所小学教育竞争力排名指南》,只摘录前300的学校。

元朗区:

本区排名 全港排名 学校 校网
1 50 元朗官立小学 (S) (P) 74
2 70 圣公会灵爱小学 (P) 73
3 108 八乡中心小学 (S) (D) 74
4 132 元朗朗屏邨惠州学校 (S) (P) 73
5 144 光明学校 (S) 73
5 144 南元朗官立小学 (S) (P) 73
7 156 钟声学校 (P) 74
8 163 中华基督教会元朗真光小学 74
9 201 博爱医院历届总理联谊会梁省德学校 (S) (P) 73
10 206 东华三院姚达之纪念小学(元朗))(S) (P) (B) 72
11 250 元朗商会小学 (S) (P) 73
11 250 十八乡乡事委员会公益社小学 (S) (P) 72
13 262 光明英来学校 (S) (P) 74
14 273 天水围天主教小学 (S) (P) 72
15 280 乐善堂梁銶琚学校 (S) (P) (B) 72
16 287 天水围偱道卫理小学 (S) (P) (U8) 72
17 288 元朗朗屏邨东莞学校 (S) (P) (D) 73
18 293 圣公会锦田圣约瑟小学 (P) 74
19 296 天水围官立小学 (S) (P) 72

屯门:

本区排名 全港排名 学校 校网
1 70 屯门官立小学 (S) (P) (B) 70
2 87 中华基督教会何福堂小学 (S) (P) (B) 70
3 140 道教青松小学 (S) (P) 70
4 156 仁济医院何式南小学 (S) (P) 71
5 167 中华基督教会拔臣小学 (S) (P) 71
6 193 路德会吕祥光小学 (S) (P) 71
7 197 保良局庄启程第二小学(S) (P) 70
8 226 圣公会蒙恩小学 (S) (P) 71
9 244 保良局梁周顺琴小学 70
10 281 仁济医院罗陈楚思小学 (S) (P) 70
11 286 博爱医院历届总理联谊会郑任安夫人千禧小学 (S) (P) 71
像根是什么

像根是什么

首先要感谢香港!要是没有香港,豆苗可能就不会来到这个世界了。

九月开学,豆苗在逐步适应香港的教育方式。虽然通学路上很辛苦,可是看到她回家都很高兴的样子,我感到非常欣慰。目前看来还算顺利,当然我们大人自己也要适应香港的风俗和文化。

在深圳这么多年,说实话很少去香港,对香港各方面的了解实在是非常匮乏。比如,今天老师在豆苗的书包里加了个小字条,说“床单不要像根”。

于是我晕菜了!像根?是说床单上的不要卡通像吗?难道是要求纯色或者素色的床单?打开VPN上google搜一下,原来是指床单周边不要用弹性的伸缩带。

毛豆上小一了

毛豆上小一了

今天给毛豆报名分班,入读小1(3)班。

时间过得真快!希望毛豆前途一切安好!