C语言gdb调试之精髓(常用命令、多进程、多线程、程序日志)
起语:
版权声明:
C语言技术网原创文章,转载请说明文章的来源、作者和原文的链接。
来源:C语言技术网(www.freecplus.net)
作者:码农有道
如果文章有错别字,或者内容有错误,或其他的建议和意见,请您联系我们指正,非常感谢!!!
我只是用来方便学习 && 复习!!! 我只是一个学习者, 内功有限, 大家看到谨慎参考!!! 如果复制粘贴错了看上面这个网站即可.
gdb调试多进程
调试代码
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main()
{
printf("begin \n");
if (fork() != 0) //pid_t fork(void);
{
//我是父进程: pid=1322, ppid=1134
printf("我是父进程: pid=%d, ppid=%d\n", getpid(), getppid()); //get process identification
//getppid()返回调用进程父进程的进程ID
//getpid()返回调用进程的进程ID。(这通常被用于生成唯一的临时文件名的例程。)
int ii;
for (ii = 0; ii < 10; ii++)
{
printf("ii=%d\n", ii);
sleep(1);
}
exit(0);
}
else
{
//我是子进程: pid=1323, ppid=1322
printf("我是子进程: pid=%d, ppid=%d\n", getpid(), getppid());
int jj;
for (jj = 0; jj < 10; jj++)
{
printf("jj=%d\n", jj);
sleep(1);
}
exit(0);
}
return 0;
}
运行结果:
相关命令:
调试父进程
: set follow-fork mode parent (缺省)
调试子进程
: set follow-fork-mode child
设置调试模式
: set detach-on-fork [on]off],缺省是on,
表示调试当前进程的时候,其它的进程继续运行,如果用off,
调试当前进程的时候,其它的进程被gdb挂起。
查看调试的进程
: info inferiors
切换当前调试的进程
: inferior 进程id
具体操作
其实也没什么命令
视频来源:
结语:
时间: 2020-09-01