这篇文章主要讲解了“Python脚本的内部各函数间的调用关系”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python脚本的内部各函数间的调用关系”吧!
正如大家所, python内部堆栈和函数的调用由PyEval_EvalFrameEx完成的, 一次PyEval_EvalFrameEx意味着一次函数调用,象上面的第19,13,10行分别对应于main, segv_test, freeNode函数, 将gdb定位到对应行后,使用pylocals宏即可查看该函数内部变量的详细情况。
(gdb) up 13 #13 0x007d6d2b in PyEval_EvalFrameEx (f=0x81242fc, throwflag=0) at Python/ceval.c:2370 2370 in Python/ceval.c (gdb) pylocals s: object : '<html><body><div><a><a></a></a><a></a></div></body></html>' type : str refcount: 3 address : 0xb7f64440 options: object : 97 type : int refcount: 7 address : 0x8082c20 doc: object : <xmlDoc (None) object at 0xb7cc04ec> type : instance refcount: 1 address : 0xb7cc04ec ctxt: object : <libxml2.xpathContext instance at 0xb7f70ccc> type : instance refcount: 1 address : 0xb7f70ccc nodes: object : [<xmlNode ((儓X? object at 0xb7cc0cac>] type : list refcount: 2 address : 0xb7f70a8c note: object : <xmlNode ((?圶? object at 0xb7cc0cac> type : instance refcount: 2 address : 0xb7cc0cac nexts: object : [<xmlNode (hhX? object at 0xb7cc750c>, <xmlNode (HXX? object at 0xb7cc76cc>, <xmlNode (@XX? object at 0xb7c9348c>] type : list refcount: 1 address : 0xb7f4ce4c
Python脚本调试时断点的设置是个很麻烦的东西,我所能想到的有两种方法:
1 根据函数的python源码进行断点设置;
2 采用sleep函数和ctrl+c来中断程序的运行。
感谢各位的阅读,以上就是“Python脚本的内部各函数间的调用关系”的内容了,经过本文的学习后,相信大家对Python脚本的内部各函数间的调用关系这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。