码迷,mamicode.com
首页 > 数据库 > 详细

python gdb

时间:2019-01-05 19:54:49      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:tin   color   The   参考资料   http   脚本   xxx   pre   could   

参考资料:

https://wiki.python.org/moin/DebuggingWithGdb

https://blog.csdn.net/Gamish/article/details/81632862

1 安装:sudo apt-get install gdb python2.7-dbg

2 调试:若脚本在A目录,则要在A目录执行 

gdb python <pid of running process>

3 从Ubuntu10.10开始,系统为安全考虑,默认阻止一个进程检查和修改另一个进程,除非前者是后者的父进程

阻止操作由 ptrace_scope 实现,当 ptrace_scope = 1 时,gdb 在调试运行中的进程时,会产生如下报错:

Attaching to process xxx
Could not attach to process.  If your uid matches the uid of the target process,
check the setting of /proc/sys/kernel/yama/ptrace_scope, or try again as the root user.  
For more details, see /etc/sysctl.d/10-ptrace.conf
ptrace: Operation not permitted.

在配置文件 /etc/sysctl.d/10-ptrace.conf里有这么一句话
The PTRACE scope is ignored when a user has CAP_SYS_PTRACE, so “sudo strace -fp $PID” will work as before.

所以为了使ptrace_scope不起作用,需要拥有CAP_SYS_PTRACE
如何使 docker 容器具有 CAP_SYS_PTRACE ? 

docker 使用 –privileged 和 –cap-add 、–cap-drop 来控制容器的权限, 如果是–privileged启动,容器将获得最大的cap,如果不是,就需要用 –cap-add 、–cap-drop 来增加或删除。

获得 CAP_SYS_PTRACE 的命令:docker run -it --cap-add SYS_PTRACE imagesname /bin/bash

至此,gdb -p PID 可正常调试。

 

python gdb

标签:tin   color   The   参考资料   http   脚本   xxx   pre   could   

原文地址:https://www.cnblogs.com/testzcy/p/10225484.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!