![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux开发
文章平均质量分 78
jakie_wang_163
这个作者很懒,什么都没留下…
展开
-
GDB调试技巧
checkpoint是程序在那一刻的快照,当我们发现错过了某个调试机会时,可以再次回到checkpoint保存的那个程序状态。 举例说明一下:#include <stdlib.h>#include <stdio.h>static int func(){ static int i = 0; ++i; if (...原创 2013-06-08 22:48:27 · 253 阅读 · 0 评论 -
linux debug调试工具
转自:http://www.cnblogs.com/zhenjing/archive/2010/10/27/1862458.html1. gdb attach [pid] -- debug a running process2. valgrind-- a suite of tools for debugging and profiling programsVery powerful ...原创 2013-09-04 10:28:34 · 108 阅读 · 0 评论 -
C++多线程程序设计经验
转自:http://blog.csdn.net/Solstice/article/details/5307710本文主要讲我个人在多线程开发方面的一些粗浅经验。总结了一两种常用的线程模型,归纳了进程间通讯与线程同步的最佳实践,以期用简单规范的方式开发多线程程序。文中的“多线程服务器”是指运行在 Linux 操作系统上的独占式网络应用程序。硬件平台为 Intel x64 系列的多核 CPU...原创 2013-08-31 00:34:05 · 378 阅读 · 0 评论 -
[高性能网络服务器技术] The C10K problem
转自:http://www.kegel.com/c10k.html#kioThe C10K problem[Help save the best Linux news source on the web -- subscribe to Linux Weekly News!]It's time for web servers to handle ten thousand client...原创 2013-08-28 23:38:04 · 308 阅读 · 0 评论 -
linux进程通讯————共享内存
转自:http://blog.csdn.net/anonymalias/article/details/9938865前面已经讨论过Linux下个各种进程间的通信方式:管道,FIFO,消息队列,他们的共同特点就是通过内核来进行通信(假设POSIX消息队列也是在内核中实现的,因为POSIX标准并没有限定它的实现方式)。向管道,FIFO,消息队列写入数据需要把数据从进程复制到内核,从这些IPC...原创 2013-08-20 12:53:15 · 106 阅读 · 0 评论 -
linux动态库加载RPATH,RUNPATH
链接动态库如何程序在连接时使用了共享库,就必须在运行的时候能够找到共享库的位置。linux的可执行程序在执行的时候默认是先搜索/lib和/usr/lib这两个目录,然后按照/etc/ld.so.conf里面的配置搜索绝对路径。同时,Linux也提供了环境变量LDLIBRARYPATH供用户选择使用,用户可以通过设定它来查找除默认路径之外的其他路径,如查找/work/lib路径,你可以在/e...原创 2013-08-18 18:20:59 · 630 阅读 · 0 评论 -
linux动态库加载的秘密
linux 下有动态库和静态库,动态库以.so为扩展名,静态库以.a为扩展名。二者都使用广泛。本文主要讲动态库方面知识。 基本上每一个linux 程序都至少会有一个动态库,查看某个程序使用了那些动态库,使用ldd命令查看 # ldd /bin/lslinux-vdso.so.1 => (0x00007fff597ff000)libselinux.so....原创 2013-08-18 14:27:35 · 78 阅读 · 0 评论 -
linux动态库加载时搜索路径
对动态库的实际应用还不太熟悉的读者可能曾经遇到过类似“error while loading shared libraries”这样的错误,这是典型的因为需要的动态库不在动态链接器ld.so的搜索路径设置当中导致的。 具体说来,动态链接器ld.so按照下面的顺序来搜索需要的动态共享库: 1.ELF可执行文件中动态段中DT_RPATH所指定的路径。这实际上是通过一种不算...原创 2013-08-18 11:00:49 · 289 阅读 · 0 评论 -
linux守护进程开发
转自:http://blog.chinaunix.net/uid-23089249-id-287770.html一、守护进程及其特性 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的,比如,Internet服务器inetd,Web服务器htt...原创 2014-01-15 16:30:37 · 178 阅读 · 0 评论 -
库中全局变量使用的建议
同事(先进哥)对全局变量用法的一点建议:我们当前很多库中使用了很多对象全局变量。用来执行一些初始化过程,并用以保证这些对象变量在库加载时即可使用。但是过多的、分散在各处的全局变量,以及同库或者不同库的全局变量之间的依赖关系,使得初始化过程的逻辑变得复杂,也因此带来过一些棘手的问题。 所以,这里整理了一下gcc编译器对库初始化和释放过程的接口,以便对全局变量及初始化过程进行统一...原创 2013-12-13 16:41:26 · 588 阅读 · 0 评论 -
Linux环境下段错误的产生原因及调试方法小结
转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。这里贴一个对于“段错误”的准确定义(参考Answers.com):A ...原创 2013-07-18 13:12:19 · 100 阅读 · 0 评论 -
GDB调试实践二(gdb找不到动态库,对运行中的进程生成core文件)
最近使用GDB调试程序的一点经验之谈:1、程序运行中生成一个Core文件便于保护现场,调试程序,gcore可以满足这种需求:gcore:对正在运行的进程生成一个内存转储文件,方便保护现场。例如:– gcore -s -c test.core pid– 用-s选项使进程在转储过程中处于停止状态,可以保证转储文件的一致性。若不用-c选项指定转储文件名,则会使用默认的c...2013-12-06 15:26:54 · 1355 阅读 · 1 评论 -
sendfile系统调用实现“零拷贝”
引自:http://blog.csdn.net/caianye/article/details/7576198 如今几乎每个人都听说过Linux中所谓的"零拷贝"特性,然而我经常碰到没有充分理解这个问题的人们。因此,我决定写一些文章略微深入的讲述这个问题,希望能将这个有用的特性解释清楚。在本文中,将从用户空间应用程序的角度来阐述这个问题,因此有意忽略了复杂的内核实现。什么是”零拷贝”为了...原创 2014-04-02 16:51:11 · 273 阅读 · 0 评论