千家信息网

Python脚本的内部各函数间的调用关系

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章主要讲解了"Python脚本的内部各函数间的调用关系",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python脚本的内部各函数间的调用关系"吧
千家信息网最后更新 2025年01月19日Python脚本的内部各函数间的调用关系

这篇文章主要讲解了"Python脚本的内部各函数间的调用关系",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Python脚本的内部各函数间的调用关系"吧!

正如大家所, python内部堆栈和函数的调用由PyEval_EvalFrameEx完成的, 一次PyEval_EvalFrameEx意味着一次函数调用,象上面的第19,13,10行分别对应于main, segv_test, freeNode函数, 将gdb定位到对应行后,使用pylocals宏即可查看该函数内部变量的详细情况。

  1. (gdb) up 13

  2. #13 0x007d6d2b in PyEval_EvalFrameEx
    (f=0x81242fc, throwflag=0) at Python/ceval.c:2370

  3. 2370 in Python/ceval.c

  4. (gdb) pylocals

  5. s:

  6. object :
    '

    '

  7. type : str

  8. refcount: 3

  9. address : 0xb7f64440

  10. options:

  11. object : 97

  12. type : int

  13. refcount: 7

  14. address : 0x8082c20

  15. doc:

  16. object :

  17. type : instance

  18. refcount: 1

  19. address : 0xb7cc04ec

  20. ctxt:

  21. object :

  22. type : instance

  23. refcount: 1

  24. address : 0xb7f70ccc

  25. nodes:

  26. object : []

  27. type : list

  28. refcount: 2

  29. address : 0xb7f70a8c

  30. note:

  31. object :

  32. type : instance

  33. refcount: 2

  34. address : 0xb7cc0cac

  35. nexts:

  36. object : [,
    ,
    ]

  37. type : list

  38. refcount: 1

  39. address : 0xb7f4ce4c

Python脚本调试时断点的设置是个很麻烦的东西,我所能想到的有两种方法:

1 根据函数的python源码进行断点设置;

2 采用sleep函数和ctrl+c来中断程序的运行。

感谢各位的阅读,以上就是"Python脚本的内部各函数间的调用关系"的内容了,经过本文的学习后,相信大家对Python脚本的内部各函数间的调用关系这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0