- 浏览: 265510 次
- 性别:
- 来自: 武汉
最新评论
-
daknife:
谢谢你的这篇文章,让我大概了解了select的一部分底层原理。 ...
Linux-2.6.25 select系统调用源码分析 -
gjlzjb:
非常有用,谢谢哈。另外问下,您是否用过Pheonix Syst ...
Why Map/Reduce? -
zhangyafei_kimi:
canbo 写道请问,我怎么生成安装包,提供给其它用户安装呢? ...
下载最新的Google Chrome源码并编译 -
canbo:
请问,我怎么生成安装包,提供给其它用户安装呢?
下载最新的Google Chrome源码并编译
文章列表
1.准备MozillaBuild
在下面地址下载最新的MozillaBuild
http://ftp.mozilla.org/pub/mozilla/libraries/win32/
目前最新的是
http://ftp.mozilla.org/pub/mozilla/libraries/win32/MozillaBuildSetup-1.4.exe
推荐安装到c:\mozilla-build,我安装到了其他目录,也成功了
运行下面的命令,得到一个MinGW shell,下面的编译都要在这个shell中运行
start-msvc6.bat
start-msvc71.bat (VS 2003)
st ...
- 2009-12-07 11:19
- 浏览 7161
- 评论(0)
把代码写清楚,别耍小聪明。
想干什么,讲的简单点、直接点。
只要有可能,使用库函数。
避免使用太多的临时变量。
“效率”不是牺牲清晰性的理由。
让机器去干那些脏活。
重复的表达式应该换成函数调用。
加上括号、避免歧义。
不要使用含糊不清的变量名。
把不必要的分支去掉。
使用语言的好特性,不要使用那些糟糕的特性。
该用逻辑表达式的时候,不要使用过多的条件分支。
如果逻辑表达式不好理解,就试着做下变形。
选择让程序更简洁的数据表达形式。
先用伪代码写,再翻译成你使用的语言。
模块化。使用过程和函数。
只要你能保证程序的可读性,能不用 goto 就别用 。
不要给糟糕的代码打补丁 - 重写就是了。
...
- 2009-08-09 18:26
- 浏览 1269
- 评论(0)
可重入就是异步信号安全。可重入的要求比多线程安全更严格。
crt的io函数和malloc、free函数都不是可重入的。但是有的字符串处理函数可重入。
满足下列条件的函数是不可重入的:
1) 函数体内使用了静态的数据结构;
2) 函数体内调用了malloc() 或者free() 函数;
3) 函数体内调用了标准I/O 函数。
如何编写可重入的函数:
1) 不要使用全局变量。因为别的代码很可能覆盖这些变量值。
2) 不能调用其它任何不可重入的函数。
3) 在和硬件发生交互的时候,切记执行类似disinterrupt() 之类的操作,就是关闭硬件 ...
- 2009-08-06 09:23
- 浏览 3219
- 评论(0)
有了dll文件需要导出def文件:
pexports zlib1.dll > zlib1.def
有了dll和def文件,需要导出MinGW的.a文件:
dlltool --dllname zlib1.dll --def zlib1.def --output-lib libz.dll.a
有了dll和def文件,需要导出一个VC的lib文件:
lib /machine:i386 /def:zlib1.def
注意:
C++的dll不具有2进制级别的共享性,也就是说VC的MinGW的C++ dll不能混用。
而C的可以。
pexports和dlltool的MinGW的工具,lib是VC ...
- 2009-06-08 23:11
- 浏览 10891
- 评论(0)
mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
mock对象:这个虚拟的对象就是mock对象。mock对象就是真实对象在调试期间的代替品。
mock对象使用范畴:
真实对象具有不可确定的行为,产生不可预测的效果,(如:股票行情,天气预报)
真实对象很难被创建的
真实对象的某些行为很难被触发
真实对象实际上还不存在的(和其他开发小组或者和新的硬件打交道) 等等...
使用mock对象测试的关键步骤:
使用一个接口来描述这个对象
在产品代码中实现这个接口
在测试代码中实现这个接口
在被测试代码中只是通过接口来引用对象,所以 ...
- 2009-05-29 03:20
- 浏览 1547
- 评论(0)
--user-agent="xxxxxxxx"
修改HTTP请求头部的Agent字符串,可以通过about:version页面查看修改效果
--user-data-dir="dir"
修改临时文件存放的位置
在这里下载windows的nightly build,直接解压到一个目录就可以用了
http://build.chromium.org/buildbot/snapshots/chromium-rel-xp
临时文件夹的位置可以用--User-data-dir=xxx命令行参数修改。比如建一个chrome.exe的快捷方式,在后面加上“ --Us ...
- 2009-05-17 22:13
- 浏览 9586
- 评论(0)
名字:
valgrind是一个调试和剖析的程序工具集。
概要用法:
valgrind [[valgrind] [options]] [your-program] [[your-program-options]]
概述:
Valgrind是一个Linux下灵活的调试和剖析可执行工具。它由在软件层提供综合的
CPU内核,和一系列调试、剖析的工具组成。架构是模块化的,所以可以在不破坏现
有的结构的基础上很容易的创建出新的工具来。
这本手册包括了基本的用法和选项。更多帮助理解的信息,请查看您系统的HTML
...
- 2009-05-16 20:04
- 浏览 4123
- 评论(0)
wget下载整个网站
可以使用下面的命令 wget -r -p -k -np http://hi.baidu.com/phps , -r 表示递归下载,会下载所有的链接,不过要注意的是,不要单独使用这个参数,因为如果你要下载的网站也有别的网站的链接,wget也会把别的网站的东西下载 下来,由于互联网的特性,很有可能你会把整个互联网给下载下来 --,所以要加上 -np这个参数,表示不下载别的站点的链接. -k表示将下载的网页里的链接修改为本地链接.-p获得所以显示网页所需的元素,比如图片什么的.
另外还有其他的一些参数可以使用:
-c表示断点续传
-t 100表示重试100次,-t 0表示无穷 ...
- 2009-05-13 09:03
- 浏览 3031
- 评论(0)
使用google breakpad生成dump文件
breakpad的主要功能就是生成dump文件,还可以将dump文件发送的远程http服务器。
breakpad的SVN在这里http://google-breakpad.googlecode.com/svn/trunk
linux,mac,solaris,windows下面产生dump文件的例子文件在这几个文件里面, ...
- 2009-05-12 16:49
- 浏览 11704
- 评论(0)
Rational Purify 使用及分析实例可以见这里http://www.ibm.com/developerworks/cn/rational/r-cail
但是如果使用VC7,8,9的默认编译和链接设置,那是肯定找不到准确的错误位置的。
为此,需要在VC8(VC7和VC9类似)中一些编译和链接参数要修改如下:
Debug Information Format - Program Database
Whole Program Optimization - No
Code Generation, the Basic Runtime Checks - Default
Enable Inc ...
- 2009-05-12 12:24
- 浏览 3999
- 评论(0)
都要有管理员权限才行
修改
/proc/sys/fs/file-max
文件中的那个数字,改的大一点无所谓
然后ulimit -n 60000
- 2009-05-05 09:27
- 浏览 1491
- 评论(0)
一个项目需要,特地写了这些功能的函数。
process_stat.h的内容如下:
/** @file
* @brief 进程统计信息函数的声明
* @author 张亚霏
* @date 2009/05/03
* @version 0.1
*
*/
#ifndef PROCESS_STAT_H
#define PROCESS_STAT_H
#ifdef __cplusplus
extern "C" {
#endif
typedef long long int64_t;
typedef unsigned lo ...
- 2009-05-03 19:56
- 浏览 30000
- 评论(0)
之所以这么喜欢chrome,就是因为它开放。与firefox不同,ff使用了mozilla的一些技术:xul、xpcom,而且编译过程非常复杂,不适合研究学习。chrome使用了最普通的lib:WTL、zlib、libpng、sqlite、webkit,连v8也不是专门为chrome开发的,它甚 ...
- 2009-05-02 01:48
- 浏览 30742
- 评论(2)
#include <Windows.h>
PVOID HookAPI(PBYTE pbModule, PCSTR pszName, PVOID pvOrg, PVOID pvNew)
{
PIMAGE_THUNK_DATA r;
PIMAGE_NT_HEADERS p;
PIMAGE_IMPORT_DESCRIPTOR q;
p = (PIMAGE_NT_HEADERS) (pbModule + ((PIMAGE_DOS_HEADER) pbModule)->e_lfanew);
q = (PIMAGE_IMPORT_DESCRIPTOR) ...
- 2009-04-29 16:04
- 浏览 2070
- 评论(0)
原地址已经找不到了,而且里面的几个小bug和编译不过去的地方我已经修改了.
Sample目录下是个例子.
注意:请遵守GPL协议.
- 2009-04-08 14:49
- 浏览 2359
- 评论(0)