您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python腳本的內(nèi)部各函數(shù)間的調(diào)用關(guān)系”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python腳本的內(nèi)部各函數(shù)間的調(diào)用關(guān)系”吧!
正如大家所, python內(nèi)部堆棧和函數(shù)的調(diào)用由PyEval_EvalFrameEx完成的, 一次PyEval_EvalFrameEx意味著一次函數(shù)調(diào)用,象上面的第19,13,10行分別對應(yīng)于main, segv_test, freeNode函數(shù), 將gdb定位到對應(yīng)行后,使用pylocals宏即可查看該函數(shù)內(nèi)部變量的詳細(xì)情況。
(gdb) up 13
#13 0x007d6d2b in PyEval_EvalFrameEx
(f=0x81242fc, throwflag=0) at Python/ceval.c:23702370 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腳本調(diào)試時斷點的設(shè)置是個很麻煩的東西,我所能想到的有兩種方法:
1 根據(jù)函數(shù)的python源碼進(jìn)行斷點設(shè)置;
2 采用sleep函數(shù)和ctrl+c來中斷程序的運行。
感謝各位的閱讀,以上就是“Python腳本的內(nèi)部各函數(shù)間的調(diào)用關(guān)系”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Python腳本的內(nèi)部各函數(shù)間的調(diào)用關(guān)系這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。