存档

2012年8月 的存档

gdb调试内联函数与宏

2012年8月27日 没有评论 5,753 次浏览

在用gdb调试程序的时候,会遇到内联函数与宏的问题,下面来看看。 # cat t.h #ifndef _T_H #define _T_H #include <stdio.h> static inline long utilfunc(long a, long b, long c) { long xx = a + 2; long yy... [阅读更多]

使用uml调试tcp socket的TCP_CORK

2012年8月26日 没有评论 2,332 次浏览

1,准备这么一个源文件,并编译得到对应的执行程序tcp_cork_test放到uml内: # cat tcp_cork_test.c /** * gcc -Wall -g -o tcp_cork_test tcp_cork_test.c */ #include <stdio.h> #include <stdlib.h> #include... [阅读更多]

uml使用详细

2012年8月26日 没有评论 2,612 次浏览

1,内核编译: 先说下环境如下,操作系统为CentOS 6.0 64位,除内核被升级为2.6.38.8外,其它基本环境无改变: # cat /etc/issue CentOS Linux release 6.0 (Final) Kernel \r on an \m # uname -a Linux localhost.localdomain... [阅读更多]

分类: *nix技术, 跟踪调试 标签:

试用内核gcov

2012年8月24日 9 条评论 4,074 次浏览

对于2.6.31及以上的内核,gcov已经默认支持:http://kernelnewbies.org/Linux_2_6_31#head-1c98f5fae2cb7f0fa65bb6de08d7c5c6475180a8 也就是不用再打补丁,执行make menuconfig,选中如下选项: General setup —> ... [阅读更多]

gcov初试用

2012年8月24日 没有评论 2,560 次浏览

gcov是标准的GNU覆盖测量工具,这里就尝试试用一下。有如下这么一个源文件: /** * gcc -fprofile-arcs -ftest-coverage tmp.c */ #include <stdio.h> int main(int argc, char **argv) { int i, total; ... [阅读更多]

gcc到底帮我打开了哪些具体优化选项

2012年8月18日 没有评论 2,742 次浏览

当我们使用gcc编译程序时,一般会选用某个优化编译选项,比如-O2、-O3、-Os,但这些选项使得gcc到底帮我打开了哪些具体优化选项呢?利用gcc的-Q和–help可以给我们答案: # gcc -c -Q -O3... [阅读更多]

Linux下cpuinfo显示不一致的cpu主频率

2012年8月15日 1 条评论 5,163 次浏览

在linux下,使用命令cat /proc/cpuinfo查看cpu主频率时,也许有些人会发现在自己的某些机器上显示的两处频率数值不一致,比如下面这种情况: vendor_id : GenuineIntel cpu family : 15 model ... [阅读更多]

分类: *nix技术 标签: ,

梳子排序(Comb Sort)

2012年8月14日 2 条评论 5,221 次浏览

所谓的排序就是将记录按排序码递增(或递减)的次序排列起来,形成新的有序序列。假设有n个记录的序列为{R1,R2,…Rn},其相应的排序码为{K1,K2,…,Kn},那么排序就是要将这n个记录序列从新排序为{R1’,R2’,…Rn’},使得各记录对应的排序码满足K1’... [阅读更多]

read/write数据读写传输方式

2012年8月9日 1 条评论 2,861 次浏览

利用系统调用函数read()/write()是我们平常用得最多的一种数据读写方式,大多数情况下我们并没有考虑这种数据读写方式的执行效率,因为在很多并不以数据频繁读写为性能瓶颈的应用程序中函数read()/write()消耗的执行时间可以忽略,但是它们内在具体实现和执行效率到底如何呢?下面我们就来进行详细的分析。 函数read()/write()定义在头文件unistd.h内,原型如下: #include... [阅读更多]

nginx变量机制

2012年8月8日 没有评论 6,080 次浏览

初识变量 前面曾讲过nginx配置文件的解析过程,也就是nginx如何在启动的过程中对用户设定的配置文件进行解析,并将配置文件中的各个配置项与配置值转换为对应的nginx内部变量值,从而能让nginx按照用户预想的情况去运行。 如果只是一些比较简单并且确定的功能配置需求,那么nginx用户能够很方便的做出相应的设定,比如用户想要设置工作进程数为2个,那么配置文件中这样写即可:worker_processes... [阅读更多]