Soul Orbit

I'll take a quiet life. A handshake of carbon monoxide.

Google breakpad是一个非常实用的跨平台的崩溃转储和分析模块,他支持Windows,Linux和Mac和Solaris。由于他本身跨平台,所以很大的减少我们在平台移植时的工作,毕竟崩溃转储,每个平台下都不同,使用起来很难统一,而Google breakpad就帮我们做到了这一点,不管是哪个平台下的崩溃,都能够进行统一的分析。现在很多工程都在使用他:最著名的几个如Chrome,Firefox,Picasa和Google Earth。另外他的License是BSD的,也就是说,我们即便是在商业软件中使用,也是合法的,哈哈,这么好的东西,我们能放过么?现在就让我们来看看这个神奇的软件吧。

1. 原理简介

breakpad抓取dump的方式和一般我们抓取dump的方式不一样。在breakpad的wiki上有一幅图可以很好的概括他的原理。
Breakpad

breakpad把应用程序分成三个部分,代码,breakpad客户端和调试信息。

  1. 在build system中,通过symbol dumper用平台相关的调试信息生成平台无关的symbol文件。这样做的好处很明显,一旦平台无关了,所有平台的崩溃就可以做统一的分析了。
  2. breakpad采取进程外转储和分析崩溃的方式,他使用C/S结构,客户端用来捕获当前进程中发生的崩溃,并通知服务端崩溃发生。服务端用来响应客户端,抓取dump文件。这样做的目的是为了减少崩溃进程对dump的影响。
  3. Dump生成后转发到崩溃分析器中,这个部分可以在本地也可以在服务器上,他对Dump文件进行解析,生成可读的堆栈信息。

这就是breakpad处理dump大概的流程。

Read more »

好不容易读完了重构——2010年下半年唯一读了的一本书。只能说这半年以来很忙,来了北京之后连个喘息的机会都没有,半年都没有管过博客了,写写读后感,就当作是除除草吧。
以下只是我的一些读书笔记,不过虽然是笔记,但是里面并没有关于重构方法的细节记录,而只是粗略的记下了我理解的重构的大致思路。和《重构》这本书不同,这本书本身说的很细,作者把每一步重构的都拆成了很小的步骤,每一步都可以轻松的回滚,所以有兴趣的可以去看看这本书,肯定都会有一定收获的。
我现在只是一名小菜,过段时间之后,我自己回头看这篇文章,可能都会觉得自己很傻,所以如有不对,还请多多指教,如果实在看不顺眼,就请纯当笑话看吧。
好,下面进入正题。

注:因为是读书笔记,所以可能会有抄袭等等奇奇怪怪的问题,如果发现有版权问题,请联系我,我会尽快删除本文。

===================== 我是欢乐的分隔线 =====================

1. 重构的目的

我们总希望自己的代码能写的更加好看,以至于我MM把我写代码比喻成为打扮自己。没有错,代码就是一个程序员的外表。而重构就是为了让你的代码更加好看。
但是仅仅是好看而已么?
不是,好看意味着简洁,好理解,好维护,好扩展。这就是我们真正要达到的目的。
那这些目的最终又是为了完成什么呢?我们最后再说。

2. 设计模式和重构

设计模式想必大家肯定已经不陌生了,平时在开发的时候,大家也肯定用过各种各样的模式来解决遇到的问题。而当你现在手头的代码使用的模式不能很好的支持你继续开发的时候(可能是不够灵活,也可能是过于灵活),你就需要使用重构来修改它,将你的代码变得更加优雅。

Read more »
0%