摘要: 【算法】堆,最大堆(大顶堆)及最小堆(小顶堆)的实现 阅读全文
posted @ 2014-05-19 22:27 汪少伯 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 转自:gdb调试多进程和多线程命令1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可... 阅读全文
posted @ 2014-05-19 16:06 汪少伯 阅读(554) 评论(0) 推荐(0) 编辑
摘要: 1. 启动GDB开始调试:(1)gdbprogram///最常用的用gdb启动程序,开始调试的方式(2)gdbprogram core///用gdb查看core dump文件,跟踪程序core的原因(3)gdbprogram pid///用gdb调试已经开始运行的程序,指定pid即可2. 应用程序带... 阅读全文
posted @ 2014-05-19 15:07 汪少伯 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 最近调试程序学到的几个挺有用的函数,分享一下,希望对用C/C++的朋友有所帮助!1. 调用栈系列下面是函数原型:1234#include "execinfo .h"int backtrace(void **buffer, int size);char **backtrace_symbols(void... 阅读全文
posted @ 2014-05-19 13:30 汪少伯 阅读(784) 评论(0) 推荐(0) 编辑
摘要: 本文要介绍的sar,是linux下用来分析系统本身运行情况的非常有用的工具。我们知道,程序在操作系统上要运行,要关注的点不外乎内存,CPU和IO(包括磁盘IO和网络IO)。我们的应用程序在操作系统中运行前,我们需要了解系统当前的内存,cpu和IO的使用状况,还需要明白我们的应用程序运行时自身所需要的... 阅读全文
posted @ 2014-05-19 11:59 汪少伯 阅读(366) 评论(0) 推荐(0) 编辑
摘要: 本文要介绍的ldd和nm是linux下,两个用来分析程序很实用的工具。ldd是用来分析程序运行时需要依赖的动态库的工具;nm是用来查看指定程序中的符号表相关内容的工具。下面通过例子,分别来介绍一下这两个工具:1. ldd, 先看下面的例子, 用ldd查看cs程序所依赖的动态库:wuzesheng@w... 阅读全文
posted @ 2014-05-19 11:57 汪少伯 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 写在最前面:在开始本文之前,笔者认为先有必要介绍一下linux下的man,如果读者手头用linux系统,直接在终端输入man man便可以看到详细的说明,我在这里简单的总结一下,man命令是用来查看linux下各种命令、工具等的用户手册(manual)的。一种比较常用的用法是”man n field... 阅读全文
posted @ 2014-05-19 11:56 汪少伯 阅读(451) 评论(0) 推荐(0) 编辑