用gdb调试程序时,要使用-g选项添加调试信息,如:
g++ -g pagerank.cpp -o pagerank
接着使用gdb pagerank即可进入调试程序。
常用命令如下:
- 显示图形化代码 Ctrl+x+a
- 启动程序 r (run)
- 断点 b (breakpoint)
- 清除/禁用/启用断点 delete/disable/enable
- 单步 s (step 碰到函数会进入)
- 单行 n (next 碰到函数不会进行, 而是整条执行)
- 执行到下一个断点 c (continue)
- 查看变量 p (print)
- 显示变量 display
- 查看当前调用堆栈 bt (backtrace)
- 查看某一层调用代码 f (frame)
关于程序出现段错误 segmentation fault (core dump)的调试方法详见https://my.oschina.net/zenglingfan/blog/169871
ulimit设置系统资源的参数如下:
-a:显示目前资源限制的设定;
-c :设定core文件的最大值,单位为区块;
-d <数据节区大小>:程序数据节区的最大值,单位为KB;
-f <文件大小>:shell所能建立的最大文件,单位为区块;
-H:设定资源的硬性限制,也就是管理员所设下的限制;
-m <内存大小>:指定可使用内存的上限,单位为KB;
-n <文件数目>:指定同一时间最多可开启的文件数;
-p <缓冲区大小>:指定管道缓冲区的大小,单位512字节;
-s <堆叠大小>:指定堆叠的上限,单位为KB;
-S:设定资源的弹性限制;
-t :指定CPU使用时间的上限,单位为秒;
-u <程序数目>:用户最多可开启的程序数目;
-v <虚拟内存大小>:指定可使用的虚拟内存上限,单位为KB。
ulimit用法具体可参考: http://man.linuxde.net/ulimit