微软官方MSDN原版Win10系统下载

现在位置: 首页  > 系统教程  > Linux教程

linux如何调试多进程程序

时间:2024-04-24 03:24:59   

大家好,今天Win10系统之家小编给大家分享「linux如何调试多进程程序」的知识,如果能碰巧解决你现在面临的问题,记得收藏本站或分享给你的好友们哟~,现在开始吧!

蓝牙调试宝app系列软件最新版本下载

  在Linux系统操作中,经常会遇到多进程调试的问题,其实多进程的调试没有想象中的那么复杂,下面小编就给大家介绍下Linux如何调试多进程程序,感兴趣的朋友不妨来了解下。

  多进程的调试:

  (1)follow-fork-mode

  set follow-fork-mode [parent | child] ———— fork之后选择调试父进程还是子进程

  (parent: fork之后继续调试父进程;child: fork之后调试父进程。默认的是fork之后调试父进程)

  set detach-on-fork [on | off] ———— 指示gdb在fork之后是否断开某个进程的调试,或交由gdb控制

  (on: 断开调试follow-fork-mode指定的进程;off: gdb将控制父进程和子进程,follow-fork-mode指定的进程将被调试,另一个进程置于暂停状态)

  (2)attach pid

  ubuntu下gdb要使用attach pid权限是不够的,需要切换到root,或者你可以sudo chmod +s /usr/bin/gdb给gdb添加权限。

  使用attach需要在父子进程代码最开始添加sleep()语句,让进程睡眠,之后在后台运行进程,通过ps获取子进程pid,最后attach pid进入调试子进程。

  eg:

  $./test & //使进程test在后台运行

  $ps -ef | grep test //查看进程pid

  结果中类似下面的形式:

  XXX 12345 23456 ———————————————— 。/test //父进程

  XXX 12346 12345 ———————————————— 。/test //子进程,这里的第一个数字就是子进程pid

  $ gdb -q test

  (gdb)attach 12346 //attach到子进程

  添加的sleep()可以是类似这样的语句:

  while(pause) //pause是一个标志变量

  sleep(1);

  在gdb调试时你只需要set pause=0使条件不满足即可执行后续代码。

  (3)gdb wrapper

  当父进程fork出子进程,子进程会紧接着调用exec函数来执行新的代码,这时也可以用gdb wrapper。它的优点是不用添加额外代码。

  linux下将一个进程放到后台运行:

  (1)。/test &

  (2)“。/test” 之后按下 “ctrl+z” , 用“bg %num”返回的数字将该进程放到后台;

  linux下将进程拉回前台:

  用“fg %num”

  上面就是Linux多进程程序调试的方法介绍了,多进程的调试我们通常使用的是gdb,当你在调试的时候多少都会用到gdb调试工具。

以上就是关于「linux如何调试多进程程序」的全部内容,本文讲解到这里啦,希望对大家有所帮助。如果你还想了解更多这方面的信息,记得收藏关注本站~

Win10系统之家wWw.gHoSt580.net♂文章,转载请注明出处!

相关文章

  • linux如何调试多进程程序

    linux如何调试多进程程序


      在Linux系统操作中,经常会遇到多进程调试的问题,其实多进程的调试没有想象中的那么复杂,下面小编就给大家介绍下Linux如何调试多进程程序,感兴趣的朋友不妨来了解下。
      多进程的调试:
      (1)follow-fork-mode
      setfollow-fork-mode[parent|child]————fork之后选择调试父进程还是子进程
      ...
  • 如何使用命令行更改Linux系统的日期和时间

    如何使用命令行更改Linux系统的日期和时间


      Linux系统的时间有时候会不准,不准确的时间会导致日志文件中的时间出现错误,所以准确的时间是很重要的,那么要怎么更改Linux系统的时间呢?下面小编给大家介绍下使用命令行更改Linux系统时间和日期的方法步骤。
      问题:在Linux上,我怎样通过命令行来改变日期和时间?
      在Linux系统中保持日期和时间的同步是每一个Linux用户和系统管理员的重要责任。很多程...
  • 初学者如何查看Linux中的shell指南

    初学者如何查看Linux中的shell指南


      很多人都想知道本机的Linux系统使用的是哪种shell,下面小编就教你如何查看Linux系统中使用的shell的方法,一起来了解下吧。
      查看当前发行版可以使用的shell
      代码如下:
      [root@localhost~]$cat/etc/shells
      /bin/sh
      /bin/bash
      /sbin/nologin...
  • 初学者如何快速学习Linux下的find命令

    初学者如何快速学习Linux下的find命令


      单纯的了解Linuxfind命令是不够的,我们还要知道怎么使用它,下面小编从find的例子中给大家介绍下find的用法,希望对初学者能有所帮助。
      让我们先从一个简单例子开始。
      $find/-nametest
      。/backup/modules/field/modules/test
      $
      “查找根目录下名称为’test’的文件”,...