Linux
文章平均质量分 66
阿蓬江
.。。。。。。。。。。。。。。。。。。。
展开
-
转Configure,Makefile.am, Makefile.in, Makefile文件之间
1.autoscan (autoconf): 扫描源代码以搜寻普通的可移植性问题,比如检查编译器,库,头文件等,生成文件configure.scan,它是configure.ac的一个雏形。 your source files --> [autoscan*] -->转载 2011-09-19 18:05:37 · 735 阅读 · 0 评论 -
使用__builtin_return_address(level)和objdump查找bug和宕机
有些时候我们很难知道问题出在哪里,特别是类的析构,以及一些函数(调用这个函数的地方很多并且很频繁,不确定调用这个函数的堆栈)的调用,当我们去查找相应功能的代码问题时,如果简单的通过断点不好查找,就可以使用这个办法。所以我们使用gcc的编译特性使用__builtin_return_address(level)打印出一个函数的堆栈地址。其中level代表是堆栈中第几层调用地址,__builtin_原创 2012-03-27 21:36:50 · 6013 阅读 · 0 评论 -
#include time.h和 #include sys/time.h的区别
交叉编译情况下,两个文件的地址/opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/time.h /opt/gcc-4.1.2-glibc-2.4/arm-xscale-linux-gnu/arm-xscale-linux-gnu/include/sys/time.h转载 2012-04-05 21:32:33 · 5735 阅读 · 0 评论 -
Valgrind 使用简单说明(ZZ)
调不尽的内存泄露,用不完的Valgrind(一个介绍程序调试的精彩讲解:http://www.ibm.com/developerworks/cn/linux/l-pow-debug/)Valgrind 介绍 Valgrind是一个GPL的软件,用于Linux(For x86, amd64 and ppc32)程序的内存调试和代码剖析。你可以在它的环境中运行你的程序来监视内存的使转载 2012-07-05 11:05:25 · 500 阅读 · 0 评论 -
Linux on Power 上的调试工具和技术
http://www.ibm.com/developerworks/cn/linux/l-pow-debug/简介调试程序有很多方法,例如向屏幕上打印消息,使用调试器,或者只需仔细考虑程序如何运行,并对问题进行有根有据的猜测。在修复 bug 之前,首先要确定在源程序中的位置。例如,当一个程序产生崩溃或生成核心转储(core dump)时,您就需要了解是哪行代码发生了崩溃转载 2012-07-05 11:14:45 · 2219 阅读 · 0 评论 -
tar
转一个,自己老忘http://www.2cto.com/os/201109/103833.html范例一:将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar[root@linux ~]# tar -cvf /tmp/etc.tar /etc [root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc [root@linux ~转载 2012-07-17 15:05:03 · 467 阅读 · 0 评论 -
定制core dump 文件的文件名
Linux使用笔记: 定制core dump文件的文件名Posted on 2009年11月17日在开发过程中,当一个Linux程序异常退出时,我们可以通过core文件来分析它异常的详细原因。缺省情况下,Linux在程序异常时不产生core文件,要想让程序异常退出时产生core dump文件,需要使用ulimit命令更改coredump的设置:ulimit -c unl转载 2012-03-21 16:21:03 · 1069 阅读 · 0 评论 -
epoll的ET和LT模式
http://www.kuqin.com/linux/20120912/330528.html在一个非阻塞的socket上调用read/write函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被block,perror输转载 2013-04-25 15:54:09 · 837 阅读 · 0 评论 -
EPOLL的ET和LT模式
http://wenku.baidu.com/view/31253a29e2bd960590c677c8.htmlEPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET)、Level Triggered (LT)。LT是缺省的工作方式,并且同时支持block和no-blocksocket;在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就转载 2013-04-25 15:58:48 · 3968 阅读 · 0 评论 -
可能由_wordcopy_fwd_dest_aligned 引起的一处内存出错
==28356== Thread 9:1481 ==28356== Invalid read of size 81482 ==28356== at 0x3328A7BA95: _wordcopy_fwd_dest_aligned (in /lib64/libc-2.5.so)1483 ==28356== by 0x3328A7B0FF: bcopy (in /lib64/libc原创 2013-11-13 17:51:24 · 3603 阅读 · 0 评论 -
技巧:多共享动态库中同名对象重复析构问题的解决方法
http://www.ibm.com/developerworks/cn/linux/l-cn-sdlstatic/Linux 支持的共享程序库(lib*.so)技术不仅能够有效利用系统资源,而且还对程序设计带来了很大的便利性、通用性等,因此被各种级别的应用系统广泛采用。 动态链接的共享库是在加载应用程序时被加载的,而且它与应用程序是在运行时绑定的:通过动态链接器,将动态共享库映射进应转载 2013-12-05 16:30:52 · 2121 阅读 · 0 评论 -
core文件设置
http://www.akadia.com/services/ora_enable_core.html How do I enable core dumps for everybodyOverviewIn most Linux Distributions core file creation is disabled b转载 2012-03-02 16:37:20 · 6401 阅读 · 1 评论 -
epoll
在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询转载 2011-08-25 22:18:28 · 502 阅读 · 0 评论 -
Linux信号处理整理(一)
在头文件中,定义了linux中的信号。实际上,信号的定义在中,该头文件包含在中。 信号是一种软中断,在我们的应用程序中,很多情况都会使用信号,去处理异常,异步等情况。 内核在信号来到时,做三个处理。 1.忽略该信号;信号SIGKILL,SIGSTOP是不能被忽略的,它们提供了像超级用户提供终止程序的方法 2.捕捉该信号; 3.执行系统默认原创 2011-12-19 20:47:30 · 593 阅读 · 0 评论 -
TEMP_FAILURE_RETRY,__extension,MSG_NOSIGNAL
#define TEMP_FAILURE_RETRY(expression) \ (__extension__\ ({ long int __result;\ do __result = (long int)(expression);\ while(__result == -1L&& errno == EINTR);\ __result;})\原创 2011-12-09 11:45:16 · 3967 阅读 · 0 评论 -
epoll_wait
转载:http://hi.baidu.com/lbxthinker/blog/item/09e7fb1e83916d70f724e429.htmlNAME epoll_wait, epoll_pwait - wait for an I/O event on an epoll file descriptorSYNOPSIS #inc转载 2011-12-12 17:54:01 · 10815 阅读 · 0 评论 -
内存池(MemPool)技术详解
概述内存池(MemPool)技术备受推崇。我用google搜索了下,没有找到比较详细的原理性的文章,故此补充一个。另外,补充了boost::pool组件与经典MemPool的差异。同时也描述了MemPool在sgi-stl/stlport中的运用。经典的内存池技术经典的内存池(MemPool)技术,是一种用于分配大量大小相同的小对象的技术。通过该技术可以极大加快内存分配/释转载 2011-12-22 21:16:43 · 2194 阅读 · 0 评论 -
linux下的so、o、lo、a、la文件有什么区别
转自:http://xcecd.blog.163.com/blog/static/679667520102175101812/o: 编译的目标文件a: 静态库,其实就是把若干o文件打了个包so: 动态链接库(共享库)lo: 使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和转载 2011-12-15 17:53:16 · 739 阅读 · 0 评论 -
sed
sed教程sed ':a;N;$!ba;s/\n/ /g'read the whole input in a loop ,then replace '\n' with a space逐个解释:: label lable for b and t commandsa \text apend text, n N read/append the next line of inpu原创 2011-09-27 12:58:44 · 384 阅读 · 0 评论 -
套接口的读写时间
游戏服务器编程时,何时去读写套接字,读完后又该怎么操作?现在的做法是,每2ms从套接口epoll_wait出套接口事件。对于写事件,直接发送数据;对于读事件,根据这个服务器的功能决定这个消息的处理,对于网关这一类的服务器,直接解析消息,进行转发,对于其他服务器,把这些消息放进一个队列里面,其他线程来对这些消息进行处理;其他,像错误事件这些,关闭套接口原创 2012-02-29 20:43:35 · 788 阅读 · 0 评论 -
开服,Mysql++使用的宕机问题
111原创 2014-02-20 16:45:35 · 1163 阅读 · 0 评论