当前位置:   article > 正文

如何使用gdb快速attach到所需进程上_gdb attach 进程名

gdb attach 进程名

如何使用gdb快速attach到所需进程上

大家都知道,gdb的调试功能非常强大,可以attach到打开调试开关编译出来的进程上调试进程,但是在这个流程中,你首先需要ps -ef | grep到你那个进程,然后找到进程号,然后再使用gdb attach命令attach进进程。

首先,这个就比较麻烦,需要执行三条命令;其次,这个方法也肯定不是一个自动化attach进进程所应该允许的流程。

这里就介绍一条命令,能够一条命令attach到进程上,且能够给自动化脚本使用。

gdb attach $(ps -ef | grep process_name | grep -v grep | awk '{print $2}')

解释

  • ps -ef 显示所有进程
  • grep process_name 找出包含progress_name的进程,如果此时只有一个叫这个名字的进程的话,那么会显示两个进程:一个是process_name这个进程,一个是grep进程
  • grep -v grep 过滤掉前一步显示出来的grep进程
  • awk’{print $2}’ 显示process_name进程信息的第二列数据

示例:

找一个带acpid的进程

ps进程查看到的结果(有两个进程,一个acpid进程,一个grep进程)

ubuntu@VM-7-212-ubuntu:/lib/modules/4.4.0-53-generic$ ps -ef | grep acpid
root       899     1  0 Apr06 ?        00:00:00 /usr/sbin/acpid
ubuntu   11798  9298  0 16:46 pts/1    00:00:00 grep --color=auto acpid
  • 1
  • 2
  • 3

使用对应命令

ubuntu@VM-7-212-ubuntu:/lib/modules/4.4.0-53-generic$ ps -ef | grep acpid | grep -v grep | awk '{print $2}'
899
  • 1
  • 2

PS

如果叫这个名字的有多个进程的话,那么则需要进一步过滤,但这个就不是本文所讨论的范围了(应该就算是这样,也基本上可以通过调整grep关键字和ps的选项来找到对应进程)

当然举个例子,本台示例机器上启动着多个带有agent字的进程

ubuntu@VM-7-212-ubuntu:/lib/modules/4.4.0-53-generic$ ps -ef | grep agent
root      1185     1  0 Apr06 ?        00:00:01 /usr/local/qcloud/stargate/sgagent -d
root      1188     1  0 Apr06 ?        00:03:05 /usr/local/sa/agent/secu-tcs-agent
root      1256     1  0 Apr06 ?        00:00:03 barad_agent
root      1271  1256  0 Apr06 ?        00:00:31 barad_agent
root      1272  1256  0 Apr06 ?        00:05:57 barad_agent
ubuntu   11736  9298  0 16:45 pts/1    00:00:00 grep --color=auto agent
root     12059  1188  0 Apr07 ?        00:00:20 /usr/local/sa/agent/plugins/sap1004
root     12117     1  0 Apr07 ?        00:10:32 /usr/local/sa/agent/plugins/sap1005
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

使用我的命令获取后,则是

ubuntu@VM-7-212-ubuntu:/lib/modules/4.4.0-53-generic$ ps -ef | grep agent | grep -v grep | awk '{print $2}'
1185
1188
1256
1271
1272
12059
12117
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/287953
推荐阅读
相关标签
  

闽ICP备14008679号