ulimit -t 引起的kill血案
admin 9年前 (2015-08-30) 3630浏览 0评论
今天在内核群里印风同学问了个问题: 某台机器的ulimit -t 不知道为啥是300, 这是不是意味着程序占用CPU 300秒后会收到SIGKILL ? 我用gdb跑mysqld 跑了一会,收到SIGKILL信号,没有配置cgroup,也没啥后台脚本...
admin 9年前 (2015-08-30) 3630浏览 0评论
今天在内核群里印风同学问了个问题: 某台机器的ulimit -t 不知道为啥是300, 这是不是意味着程序占用CPU 300秒后会收到SIGKILL ? 我用gdb跑mysqld 跑了一会,收到SIGKILL信号,没有配置cgroup,也没啥后台脚本...
admin 10年前 (2015-02-16) 4158浏览 0评论
以下是我做调试或分析时用过的工具的一个概览。如果你知道有更好的工具,请在评论中留言,可以不用很完整的介绍。 日志 没错,就是日志。再多强调在你的应用里保留足量的日志的重要性也不为过。你应当对重要的内容打日志。如果你的日志打的足够好的话,单看日志你就能...
admin 10年前 (2014-12-20) 3622浏览 0评论
1. ulimit -S -c unlimited 2. 在apache主配置文件中增加一行:CoreDumpDirectory /var/apache_coredump #目录随意 3. chown修改/var/apache_coredump的权限...
admin 11年前 (2014-07-23) 2991浏览 0评论
1.问题背景 运行于一个进程中的多个线程,彼此之间使用相同的地址空间,共享大部分数据,因此启动一个线程所花费的空间远远小于启动一个进程所花费的空间,线程间彼此切换所需的时间也远远小于进程间切换所需要的时间,一个线程的开销大约是一个进程的开销1/30左...
admin 11年前 (2014-07-08) 3008浏览 0评论
作为UNIX/Linux下使用广泛的调试器,gdb不仅提供了丰富的命令,还引入了对脚本的支持:一种是对已存在的脚本语言支持,比如python,用户可以直接书写python脚本,由gdb调用python解释器执行;另一种是命令脚本(command fi...
admin 11年前 (2014-07-01) 3459浏览 0评论
最近测试一个应用遇到问题:一旦压力略涨,应用的CPU就顶满。由于是多线程应用,直接就把系统的CPU耗完了。 本来想用gdb來调试的,结果gdb不给力,就在attach那里卡死,半天不动。后来想到了用perf来调试,果然找到了一处性能热点。修复热点以后...
admin 11年前 (2013-09-23) 3433浏览 0评论
简单说,strace是可以跟踪一个程序在做什么的命令。 一 它可以监控某个要执行的命令,比如平时最常见的ls命令: [root@localhost a]# strace ls execve(“/bin/ls”, [“...
admin 12年前 (2013-04-16) 2660浏览 0评论
命令 描述 backtrace(或bt) 查看各级函数调用及参数 finish 连续运行到当前函数返回为止,然后停下来等待命令 frame(或f) 帧编号 选择栈帧 info(或i) locals 查看当前栈帧局部变量的值 list(或...
admin 12年前 (2013-04-16) 2590浏览 0评论
准备 默认情况下,gcc/g++编译的可执行文件是不包含调试信息的,GDB是一个源代码级的调试器,使用GDB调试程序需要程序的源代码、符号及其对应的行号等,其中符号和行号可以是单独的文件,亦可以在编译时嵌入到可执行文件中。使用gcc/g++时使用-g...
admin 12年前 (2013-04-16) 3113浏览 0评论
#include <stdio.h> #include <stdlib.h> #include <unistd.h> int main() { int n = 0x3fc00000; printf("%f...