如何调试守护进程
来源:互联网 发布:sql的使用 编辑:程序博客网 时间:2024/05/17 22:08
原文地址::http://sealbird.iteye.com/blog/868220
如何调试守护进程
我写了个守护进程,可是如何用gdb 调试呢,我试了attach pid 方法 可是他不能让程序停住呀。
如何调试守护进程
ctrl+c就停住了
如何调试守护进程
realy?
如何调试守护进程
守护进程通常都要通过一个daemon_init()类似的函数将进程转换为守护进程,你可以先将这个转换注释,将其作为一个普通进程调试,调试好了之后再转换为守护进程。
如何调试守护进程
不错当前我就是这么做的 可是 你不知道。。 守护进程有些其他的特性 如 程序中用了大量的 字符操作 而且屏幕输出过多的话 就造成了溢出 (一开始没有想把它作为守护进程) 这我就想知道 为什么 守护进程中 的标准输出会造成溢出(大量的)他为什么会把 要输出到一个不存在的stdout设备上的信息写到了内存里地址里面。。
如何调试守护进程
高手们 怎么调呀 哭了
如何调试守护进程
呀,这就哭了?
如何调试守护进程
正在运行的守护进程,可以用 gdb 进程程序名 进程程序pid 来调试
如果在gdb下运行调试子进程,在gdb 下运行命令,set follow-fork-mode child 。
如何调试守护进程
我太谢谢你的回帖了
我写了个守护进程,可是如何用gdb 调试呢,我试了attach pid 方法 可是他不能让程序停住呀。
如何调试守护进程
ctrl+c就停住了
如何调试守护进程
realy?
如何调试守护进程
守护进程通常都要通过一个daemon_init()类似的函数将进程转换为守护进程,你可以先将这个转换注释,将其作为一个普通进程调试,调试好了之后再转换为守护进程。
如何调试守护进程
不错当前我就是这么做的 可是 你不知道。。 守护进程有些其他的特性 如 程序中用了大量的 字符操作 而且屏幕输出过多的话 就造成了溢出 (一开始没有想把它作为守护进程) 这我就想知道 为什么 守护进程中 的标准输出会造成溢出(大量的)他为什么会把 要输出到一个不存在的stdout设备上的信息写到了内存里地址里面。。
如何调试守护进程
高手们 怎么调呀 哭了
如何调试守护进程
呀,这就哭了?
如何调试守护进程
正在运行的守护进程,可以用 gdb 进程程序名 进程程序pid 来调试
如果在gdb下运行调试子进程,在gdb 下运行命令,set follow-fork-mode child 。
如何调试守护进程
我太谢谢你的回帖了
- #include <unistd.h>
- #include <signal.h>
- #include <sys/param.h>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <stdio.h>
- #include <time.h>
- void init_daemon(void);//守护进程初始化函数
- main(){
- FILE *fp;
- time_t t;
- init_daemon();//初始化为Daemon
- while(1)//每隔一分钟向test.log报告运行状态
- {
- sleep(2);//睡眠一分钟
- if((fp=fopen("test.log","a"))>=0){
- t=time(0);
- fprintf(fp,"Im here at %sn",asctime(localtime(&t)) );
- fclose(fp);
- }
- }
- }
- void init_daemon(void)
- {
- int pid;
- int i;
- if(pid=fork())
- exit(0);//是父进程,结束父进程
- else if(pid<0)
- exit(1);//fork失败,退出//是第一子进程,后台继续执行
- setsid();//第一子进程成为新的会话组长和进程组长//并与控制终端分离
- if(pid=fork())
- exit(0);//是第一子进程,结束第一子进程
- else if(pid<0)
- exit(1);//fork失败,退出//是第二子进程,继续//第二子进程不再是会话组长
- for(i=0;i<NOFILE;++i)//关闭打开的文件描述符
- close(i);
- chdir("/cygdrive/e/tmp");//改变工作目录到/tmpumask(0);//重设文件创建掩模
- return;
- }
- //nIm here at Tue Jan 11 12:21:06 2011
#include <unistd.h>#include <signal.h>#include <sys/param.h>#include <sys/types.h>#include <sys/stat.h> #include <stdio.h> #include <time.h>void init_daemon(void);//守护进程初始化函数main(){FILE *fp;time_t t;init_daemon();//初始化为Daemonwhile(1)//每隔一分钟向test.log报告运行状态{sleep(2);//睡眠一分钟if((fp=fopen("test.log","a"))>=0){t=time(0);fprintf(fp,"Im here at %sn",asctime(localtime(&t)) );fclose(fp);} }}void init_daemon(void){int pid;int i;if(pid=fork())exit(0);//是父进程,结束父进程else if(pid<0)exit(1);//fork失败,退出//是第一子进程,后台继续执行setsid();//第一子进程成为新的会话组长和进程组长//并与控制终端分离if(pid=fork())exit(0);//是第一子进程,结束第一子进程else if(pid<0)exit(1);//fork失败,退出//是第二子进程,继续//第二子进程不再是会话组长for(i=0;i<NOFILE;++i)//关闭打开的文件描述符close(i);chdir("/cygdrive/e/tmp");//改变工作目录到/tmpumask(0);//重设文件创建掩模return;} //nIm here at Tue Jan 11 12:21:06 2011
- 如何调试守护进程
- 如何创建守护进程
- 如何创建守护进程
- 如何创建守护进程
- 如何创建守护进程
- 如何创建守护进程
- 如何创建守护进程
- 如何实现守护进程?
- 守护进程的调试方法
- 如何设置精灵|守护进程
- 如何编写linux 守护进程
- 如何编写linux守护进程?
- Android中如何守护进程?
- Linux:守护进程解析、如何实现守护进程
- linux守护进程介绍以及如何编写守护进程
- Linux使用日志系统调试守护进程
- gdb多线程/多进程(守护进程)调试
- 【工具】gdb多线程/多进程(守护进程)调试
- 图像处理OpenCV库移植
- to look at things
- in 和 exists区别
- How to setup and configure Sonar for Groovy projects
- 目录列表的显示
- 如何调试守护进程
- 2012年4月23日
- 在C++中使用cpuid指令获得CPU信息
- 新顺序表
- 中文编码相关,python处理gbk编码的xml文件方法
- 矩形嵌套
- mac os x找回root的密码
- POJ-1106 Transmitters解题报告
- 【最近读书】《醒世恒言》