我们可以通过 1) gdb prog_name -> r 用在逐步调试自己的程序时 2) gdb -> attach process_id 正在运行中的后台程序突然卡在了某个地方,先ps再gdb/attach 3) gdb prog_name core 程序core掉了 三种方式对一个程序进行调试; ...
分类:
数据库 时间:
2016-06-30 16:00:03
阅读次数:
180
1)如何使用strace+pstack利器分析程序性能?http://www.cnblogs.com/bangerlee/archive/2012/04/30/2476190.html此文有详细介绍怎么用strace和pstack2)Linux下多线程查看工具(pstree、ps、pstack)?h ...
分类:
数据库 时间:
2016-06-29 20:36:55
阅读次数:
196
有两种方法:第一种:pstack 进程ID 第二种,使用gdb 然后attach 进程ID,然后再使用命令 thread apply all bt 第三种:strace -f -p pid 该方法和pstack类似 第四中:gcore pid ,输出core文件,gdb cmd corefile 两 ...
分类:
系统相关 时间:
2016-06-29 20:24:17
阅读次数:
209
strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括..
分类:
系统相关 时间:
2016-06-29 13:31:36
阅读次数:
210
定义:strace常用来跟踪进程执行时的系统调用和所接收的信号。在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用..
分类:
其他好文 时间:
2016-06-29 01:24:26
阅读次数:
290
本文首先介绍了一些线程基础,比如并发、并行、内存分配、系统调用、POSIX线程。接着通过strace分析了线程与进程的区别。最后以Android、Golang等线程模型进行了分析。 基础 1. 什么是并发(Concurrent),什么是并行(Parallels)? 并发指同时进行多个计算任务。 并行 ...
分类:
编程语言 时间:
2016-06-24 23:40:17
阅读次数:
388
开发环境中的rabbitmq总是会挂掉,rabbitmq的执行都是ssh远程登录执行命令: 认为加了&,进程会在后台执行不会受到终端的影响。所以不知道什么问题,后面想到使用strace查看该进程到底在退出时遇到了什么。 使用strace记录下日志,到第二天的时候果然RMQ再次倒下。查看日志,看到最后 ...
分类:
其他好文 时间:
2016-06-20 15:37:38
阅读次数:
463
在我们的一款WebGame的生产环境中,一次无意的strace抓包时,发现了php与mysql大量通讯的数据。这种情况,在游戏服务器刚启动时,是正常的,但如果是运行一段时间之后,出现大量SELECT的SQL查询,绝对是有问题的,而且,所操作的数据库并不是配置库,那意味着,我们程序员的程序出现了违规的 ...
分类:
数据库 时间:
2016-06-12 20:29:06
阅读次数:
426
http://www.ttlsa.com/tools/use-strace-to-track-multiple-processes/ strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用及它所接收的系统信息。追踪程序运行时的整个生命周期,输出每一个系统调用的名字,参 ...
分类:
系统相关 时间:
2016-06-09 10:54:52
阅读次数:
263
以下内容总结自debug hacks一书的高手们的调试技术一章 1.strace的使用技巧 strace name,以这样的方式运行程序,可以查看到程序运行时的系统调用,仅仅是系统调用。可以看到系统调用失败时的传参,或者卡在哪个函数位置等等。 -i选项可以看到每个系统调用的地址,那样在使用gdb调试 ...
分类:
其他好文 时间:
2016-06-01 16:52:47
阅读次数:
159