免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1114 | 回复: 3
打印 上一主题 下一主题

gdb调试的一个问题,请教大家 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-23 17:05 |只看该作者 |倒序浏览
1. 主要是父子进程的调试问题,出现一个很奇怪的现象。在子进程中设置断点,会将子进程的弄
成defunction(僵死)的进程。然而如果在父进程的部分设置断点,就不会出现子进程僵死的问题。
好像是子进程一挂就挂死了。

int main(void)
{
        pid_t pid;
        /* fork the child process */
        pid = fork();
        if (pid < (pid_t)0)
                {
                        printf("fork failed . \n");
                        exit(1);
                }
        if (pid == (pid_t)0)
        /* 子进程 */
        {
(断点在这)     printf("process child before sleep. \n");
                sleep(3000);
        }
        else {
                printf("process parent before sleep. \n");
                sleep(300);
        }


在父进程中设置断点,父子进程都没有问题。
int main(void)
{
        pid_t pid;
        /* fork the child process */
        pid = fork();
        if (pid < (pid_t)0)
                {
                        printf("fork failed . \n");
                        exit(1);
                }
        if (pid == (pid_t)0)
        /* 子进程 */
        {
                printf("process child before sleep. \n");
                sleep(3000);
        }
        else {
(断点在这)     printf("process parent before sleep. \n");
                sleep(300);
        }

这是不是意味着用GDB调试父子进程,只能是在父子进程都运行ok的情况下,分别将gdb attach到进程上。
但是如果只想起一个gdb, 或者是子进程成功运行起来,但是马上出错,根本来不及attach,这种方法就
有问题了。不知道是不是gdb调试这种多进程的缺陷? 好像在网上看到过。

测试用的环境是这样的:
SunOS 5.7 Generic_106541-23 sun4u sparc SUNW,Ultra-4

2. 父进程被挂起,子进程是不是也被挂起来了? 至少从gdb的结果来看,不是的。

招聘 : c/c++研发
论坛徽章:
0
2 [报告]
发表于 2005-12-23 18:29 |只看该作者
在子进程时停止n妙,然后attach

论坛徽章:
0
3 [报告]
发表于 2005-12-26 20:28 |只看该作者
什么意思?????????

论坛徽章:
0
4 [报告]
发表于 2005-12-28 00:07 |只看该作者
gdb调试子进程方法:

1 在fork子进程后,子进程sleep几秒钟

2 使用ps 查看fork出来的子进程的进程号

3 打开gdb,使用attach 命令
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP