c - 调试在 fork 上停止的 C 分叉进程
问题描述
我必须调试一些分叉的进程。我想调试父进程和子进程。
与其他问题一样,我同时激活了“不间断模式”和“自动调试分叉进程”。 在此处输入图像描述 问题就出在这里:现在当我到达 fork 指令时,一切都停止了,我不知道如何继续。这里是简单的代码:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int pid=fork();
if (pid>0)
{
printf("FATHER PROCESS");
} else if(pid<0)
{
printf("ERROR");
exit(1);
} else
{
printf("I'M THE CHILD PROCESS");
exit(2);
}
printf("\nEND");
return 0;
}
子进程启动,但我不知道我现在能做什么。我在 eclipse 和 NetBeans 中尝试过,但他们有同样的问题。当我使用调试器控制台时,输入“n”这是输出:
[新进程 3077]从 /home/user/programmi/eclipse-workspace/provaFork/Debug/provaFork
读取符号...完成。
从 /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.27.so...读取符号...完成。
从 /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.27.so...读取符号...完成。
警告:
无法插入断点 11。
无法访问地址 0x6d2 处的内存
无法插入断点 10。
无法访问地址 0x6e0 处的内存
无法插入断点 7。
无法访问地址 0x714 处的内存
命令中止。
(gdb) [切换到线程 2.2 (进程 3077)]
#0 0x00007ffff7ac8b1c in ?? ()
进程 3077 是子进程(我认为)。如果我再次输入“n”,我会得到:
找不到当前函数的边界
如果我禁用“自动调试分叉进程”,该进程将继续,但我无法调试子进程。
谢谢!
解决方案
推荐阅读
- python - 如何获得价值
- 使用scrapy spider python
- java - 计算我 dp 错误的高度
- android - Kotlin / Native 将 android 日志导入 android 共享代码模块时遇到问题
- c++ - C++ 使用裸指针,而不是智能指针
- sql - STRING_AGG with line break
- node.js - 如何使用节点连接 ftps 并上传文件
- python-3.x - 在数据框中查找节点的更简单方法
- sorting - 在快速排序程序集中执行递归调用的问题
- c# - C# - 如何在线临时流式传输文件以访问 URL
- php - 使用 Timber for WordPress 时,如何从帖子类型声明 PHP var 以进行 for 循环?