searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

不使用gdb查看运行中的python进程堆栈信息

2023-06-30 03:18:53
389
0

gdb只可以查看python进程cpython解释器的堆栈信息,是c代码的堆栈信息,对我们排查问题非常不友好。如果我们需要查看python代码的堆栈信息才更好定位问题。

一、方法一  使用gdb python调试插件

可以安装python-debuginfo插件,此插件可以在gdb里添加python风格的相关命令,打印pyton代码的堆栈信息

  1. py-list 查看当前python进程上下文
  2. py-bt 查看当前python进程堆栈
  3. py-locals 查看当前python frame变量
  4. py-print 显示当前python frame某变量信息
  5. py-up 查看上一个frame
  6. py-down 查看上一个frame

 

使用方法:

sudo gdb python {python进程pid}

具体用法,可以参数官方网站:https://wiki.python.org/moin/DebuggingWithGdb

 

一、方法二  使用pystack库

此方法也是我推荐的方法,最大的亮点是pystack可以打印python协程的堆栈信息

使用方法:

1、安装 pystack-debugger  python库。最好在官网下载whl后缀的包,centos也支持,如pystack_debugger-0.10.0-py3-none-any.whl。

2、yum install pystack_debugger-0.10.0-py3-none-any.whl即可安装。

3、 pystack [OPTIONS] PID 即可打印python进程堆栈信息,加上参数 --include-greenlet 可以打印python进程所有堆栈信息。对调试协程很有用。

 

 

0条评论
0 / 1000
林****年
1文章数
0粉丝数
林****年
1 文章 | 0 粉丝
林****年
1文章数
0粉丝数
林****年
1 文章 | 0 粉丝
原创

不使用gdb查看运行中的python进程堆栈信息

2023-06-30 03:18:53
389
0

gdb只可以查看python进程cpython解释器的堆栈信息,是c代码的堆栈信息,对我们排查问题非常不友好。如果我们需要查看python代码的堆栈信息才更好定位问题。

一、方法一  使用gdb python调试插件

可以安装python-debuginfo插件,此插件可以在gdb里添加python风格的相关命令,打印pyton代码的堆栈信息

  1. py-list 查看当前python进程上下文
  2. py-bt 查看当前python进程堆栈
  3. py-locals 查看当前python frame变量
  4. py-print 显示当前python frame某变量信息
  5. py-up 查看上一个frame
  6. py-down 查看上一个frame

 

使用方法:

sudo gdb python {python进程pid}

具体用法,可以参数官方网站:https://wiki.python.org/moin/DebuggingWithGdb

 

一、方法二  使用pystack库

此方法也是我推荐的方法,最大的亮点是pystack可以打印python协程的堆栈信息

使用方法:

1、安装 pystack-debugger  python库。最好在官网下载whl后缀的包,centos也支持,如pystack_debugger-0.10.0-py3-none-any.whl。

2、yum install pystack_debugger-0.10.0-py3-none-any.whl即可安装。

3、 pystack [OPTIONS] PID 即可打印python进程堆栈信息,加上参数 --include-greenlet 可以打印python进程所有堆栈信息。对调试协程很有用。

 

 

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0