如何使用 GDB 在 C 级别调试 python 脚本。给我一个简单的例子

How to debug python script in C level using GDB. Give me a simple example for this

如何使用 GDB 在 C 级别调试 python 脚本。给我一个简单的例子 this.My 主要目标是获取从我的 python 脚本调用的 libc 函数的跟踪。

您可以随时Python使用gdb并根据需要设置断点

gdb -ex r --args python script.py args

如果你想看看 Python while 运行 Python 脚本中发生了什么我建议使用混合模式

gdb -ex r --args python -m pdb script.py

这样,您可以在 pdb 中中断,然后按 Ctrl-C 并在 gdb 中结束。然后,bt 将在 Python.

内为您提供堆栈跟踪

看到的是二进制(.so)文件,你肯定不能将断点应用于特定行,但你肯定可以将断点应用于函数。 说使用

(gdb) b func_name

您可以轻松地将断点应用于函数,从而在找到断点时获取回溯。 首先 运行 你的 python sc

  1. 启动 gdb:

    gdb -ex r --args python demo.py
    
  2. 应用断点:

    (gdb) b func_name
    
  3. 运行:

    (gdb) run
    

这应该适用于您的情况。