在docker中使用gdb调试程序

在docker中使用gdb调试程序,第1张

在docker的容器中,芹缓不能使用gdb调试程序。经过调查发现是原因是 ptrace: Operation not permitted. 。

上网查找发现是ubuntu的安全设置问题,运行如下命令可以解决:

但仍然提示 ptrace: Operation not permitted.

再次查找 docker ptrace: Operation not permitted. ,发现了docker的一个issues,原因是apparmor的docker profile中限制了ptrace。

通过改变粗皮docker profile的状态,可以岩首差让gdb正常运行了。

最近项目需要用到gdb调试程序, 鉴于铅纤每次用时都要google回忆下常瞎迟用的命令,效率有点low,故整理份命令备忘录,如下:

GDB Layout命令

每次gdb时不知道程序跑到哪了,只能list?? 错, layout窗口才是王道!!

GDB 跳转执行命令

注: call func() 与 print func() 的区别,在于调用void函数时, call func()没有返磨激李回值, 而print有~~

GDB调试输出命令

注:

p/x 3*i -- x for hexadecimal, o for octal, d for decimal, f for float, c for char, s for string

断点

观察点

当待观察点被读 或 被写时,程序停下来,并输出相关信息

Display跟踪点


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12224964.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存