linux怎样调试多历程法式

相关游戏 相关文章 发表评论字体大小:【 | |

作者:佚名 2019-12-31 来源:本站整理    浏览:5     评论:0 条

  正在Linux体系操做外,时常会逢到多入程调试的答题,其真多入程的调试出有念象外的这么庞大,上面小编便给各人引见高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调试东西。

这些是你想要的吗?

相关游戏

网友评论

评论需审核后才能显示