基础
文章平均质量分 53
sean_sheng
这个作者很懒,什么都没留下…
展开
-
Linux编程基础——GDB(设置断点)
启动GDB后,首先就是要设置断点,程序中断后才能调试。在gdb中,断点通常有三种形式:断点(BreakPoint):在代码的指定位置中断,这个是我们用得最多的一种。设置断点的命令是break,它通常有如下方式:break <function> 在进入指定函数时停住break <linenum> 在指定行号停住。break +/-offset 在当前行号的前...转载 2018-03-30 18:58:20 · 224 阅读 · 0 评论 -
linux平台下利用GDB调试程序
在linux平台下使用GDB调试程序需要在程序编译时添加CFLAG="-g -O0"条件,如果需要使用p命令打印程序中的宏则需要CFLAG="-g3 -O0".原创 2018-03-26 17:38:38 · 227 阅读 · 0 评论 -
GDB 进行调试 使用心得
1: 对于在应用程序中加入参数进行调试的方法: 直接用 gdb app -p1 -p2 这样进行调试是不行的。 需要像以下这样使用: #gdb app (gdb) r -p1 -p2 或者在运行run命令前使用set args命令: (gdb) set args p1 p2 可以用show args 命令来查看2. 加入断点: break <line...转载 2018-04-13 11:36:06 · 177 阅读 · 0 评论 -
linux平台下程序跟踪strace笔记
在Linux平台下若想了解程序的函数调用关系,单靠GDB单步跟踪似乎是一件很费时的操作,有时还容易出错。先可以使用linux平台下的工具 例如strace可以列出程序中系统调用的顺序。-c 统计每一系统调用的所执行的时间,次数和出错的次数等. -d 输出strace关于标准错误的调试信息. -f 跟踪由fork调用所产生的子进程. -ff 如果提供-o filename,则所有进程的跟踪结果...原创 2018-03-28 21:37:23 · 235 阅读 · 0 评论 -
linux平台下跟踪程序笔记
关键字:pstack,CFLAG+=-finstrument-functions CFLAG+=-finstrument-functions :GCC选项,可以跟踪完整的调用顺序原创 2018-03-28 22:02:28 · 316 阅读 · 0 评论 -
linux平台下调试nginx笔记
在linux平台下调试nginx使用gdb或者cgdb程序进行调试跟踪。1.在nginx.conf配置文件中添加 daemon off;#关闭守护进程模式。 master_process on;#关闭主进程,只有worker进程工作。2.在gdb或者cgdb模式下添加 set follow-fork-mode child //可直接调试child进程,无需attach。 ...原创 2018-04-13 11:35:37 · 554 阅读 · 0 评论 -
fork与vfork以及return与exit的差异
【转】在知乎上,有个人问了这样的一个问题——为什么vfork的子进程里用return,整个程序会挂掉,而且exit()不会?并给出了如下的代码,下面的代码一运行就挂掉了,但如果把子进程的return改成exit(0)就没事。我受邀后本来不想回答这个问题的,因为这个问题明显就是RTFM的事,后来,发现这个问题放在那里好长时间,而挂在下面的几个答案又跑偏得比较严重,我觉得可能有些朋友看到那样的答案会被...转载 2018-05-04 18:56:00 · 179 阅读 · 0 评论 -
tcpdump 技巧
tcpdump -s 参数用于指定最大捕获长度,不能精确指定数据包的实际长度,tcpdump 支持protocol[x:x]表达式,用于指定某协议[起始偏移量:数值类型长度], 如指定IP包长度大于100:tcpdump ip[2:2] > 100此命令只会捕获IP包长度大于100字节的包,更方便用于网络检测。...转载 2018-05-31 16:49:18 · 545 阅读 · 0 评论 -
nginx 解惑笔记
ngx_daemon(ngx_log_t *log){ ....... fd = open("/dev/null", O_RDWR); if (fd == -1) { ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "open(\"/dev/null\") failed"); ...原创 2018-06-08 17:35:52 · 168 阅读 · 0 评论