
Linux
salutlu
这个作者很懒,什么都没留下…
展开
-
Linux man 命令后面的圆括号的意义
http://www.2cto.com/os/201110/107481.html我们经常会看到 在说一个对象的man page 的时候,会有这样的格式:mmap(2)shm_open(3)这个后面的数字是什么意思呢,通过 man man 命令就可以知道,这个是数字是,section大多数类unix 操作系统,都采用相同的section 的约定:Section 1转载 2013-08-30 10:52:18 · 960 阅读 · 0 评论 -
Gdb 调试多线程程序
GDB多线程调试的基本命令。info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID。 前面有*的是当前调试的线程。thread ID 切换当前调试的线程为指定ID的线程。break thread_test.c:123 thread all 在所有线程中相应的行上设置断点thread apply ID原创 2014-08-16 23:13:12 · 679 阅读 · 0 评论 -
Gdb调试多进程程序
程序经常使用fork/exec创建多进程程序。多进程程序有自己独立的地址空间,这是多进程调试首要注意的地方。Gdb功能强大,对调试多线程提供很多支持。方法1:调试多进程最土的办法:attach pidAttach是调试进程的常用办法,只要有可执行程序以及相应PID,即可工作。当然,为方便调试,可以在进程启动后,设定sleep一段时间,如30s,这样即可有充足的时间来attach。转载 2014-08-16 16:36:48 · 1465 阅读 · 1 评论 -
Nginx调试汇总
这里是一个比较全的介绍:http://www.cnblogs.com/yjf512/archive/2012/05/10/2494635.html原创 2014-08-15 14:18:09 · 643 阅读 · 0 评论 -
Linux debug tools
1. gdb attach [pid] -- debug a running process2. valgrind-- a suite of tools for debugging and profiling programsVery powerful tool to debug linux program,just for x86 platform3. strace -t转载 2014-08-16 19:11:56 · 589 阅读 · 0 评论 -
Gdb 调试信号
GDB有能力在你调试程序的时候处理任何一种信号,你可以告诉GDB需要处理哪一种信号。你可以要求GDB收到你所指定的信号时,马上停住正在运行的程序,以供你进行调试。你可以用GDB的handle命令来完成这一功能。 handle 在GDB中定义一个信号处理。信号可以以SIG开头或不以SIG开头,可以用定义一个要处理信号的范围(如:SIGIO- SIGKILL,表示处转载 2014-08-16 23:22:58 · 2031 阅读 · 0 评论 -
如何使用strace+pstack利器分析程序性能
zz: http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html引言有时我们需要对程序进行优化、减少程序响应时间。除了一段段地对代码进行时间复杂度分析,我们还有更便捷的方法吗?若能直接找到影响程序运行时间的函数调用,再有针对地对相关函数进行代码分析和优化,那相比漫无目的地看代码,效率就高多了。将转载 2014-09-09 14:45:14 · 1051 阅读 · 0 评论 -
socketpair学习
读Nginx源码,看到了socketpair函数,以前没有见过,网上找到一篇博客ji转载 2014-08-13 09:55:54 · 577 阅读 · 0 评论 -
nginx模块编译错误
', needed by `objs/nginx'. Stop.et `objs/addon/passport/mod_passport.omake[1]: Leaving directory `/home/admin/software/nginx-0.7.69'make: *** [build] Error 2wangc原创 2014-08-19 23:27:19 · 5060 阅读 · 1 评论 -
多线程中fork问题
http://pubs.opengroup.org/onlinepubs/009695399/functions/pthread_atfork.htmlThere are at least two serious problems with the semantics of fork() in a multi-threaded program. One problem has to d转载 2014-04-16 13:53:35 · 835 阅读 · 0 评论 -
Ubuntu重置密码
如果没有设root密码可以通过进入grub的recovery模式修改,如果设置了root密码又忘记了,可以进入单用户模式修改。1.进入recovery模式的方法,启动前按住esc键或者shift键,选择第二行recovery模式2.修改成单用户模式,进入grub模式后,选中recovery模式,按e,修改启动命令行中的 "ro recovery nomodeset" 改为 “rw sing原创 2013-12-16 14:05:07 · 791 阅读 · 0 评论 -
端口数和最大连接数的关系
初学编程的人可能会有这样的误解:一个误解: 单个服务器程序可承受最大连接数“理论”上是“65535”。这种说法是错误的,请注意,这里有两个词分别被我标记上了引号,一个是“理论”,一个是“65535”。强调“理论”这个词,是想特别明确误解者的意思:就是说,这个值是不可能被打破的,是铁板钉丁的。而65535这个数字的由来,很多人想当然地将它与port最大值联系起来。的确,TCP的端口数,最大值确实原创 2013-09-27 11:12:00 · 16936 阅读 · 3 评论 -
“make: 警告:检测到时钟错误。您的创建可能是不完整的”解决方法
http://blog.youkuaiyun.com/fenghaibo00/article/details/8537608现象: 工程每次make后,都会出现"make: 警告:检测到时钟错误。您的创建可能是不完整的"的警告,在网上查了一下,原因是有文件的时间比当前时间还要晚(比如现在系统时钟时间是2013年1月24日 12:00:00, make所依赖的文件中存在文件的时间比这个时间还晚转载 2013-09-06 09:53:08 · 1332 阅读 · 0 评论 -
安装cmake
下载的是cmake-2.6.4.tar.gz随便找个目录解压缩 tar -xzvf cmake-2.6.4.tar.gz cd cmake-2.6.4 依次执行: ./bootstrap make make installcmake 会默认安装在 /usr/local/bin 下面原创 2013-08-30 16:53:23 · 570 阅读 · 0 评论 -
GDB 调试C++异常
调试C++异常的两种办法:1) 直接获取异常的相关调用函数,在相应函数处设置断点。2) 利用gdb的catch throw/catch。(程序执行后,方有效)如何获取C++调用函数信息?写一个简单C++程序,让程序因异常而终止,bt查看调用栈,即可知道异常相关函数。转载 2014-08-16 22:37:57 · 20300 阅读 · 0 评论