91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python腳本在使用gdb調試時常會遇到的克星指的是什么

發布時間:2021-10-26 16:49:45 來源:億速云 閱讀:197 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關Python腳本在使用gdb調試時常會遇到的克星指的是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

使用gdb調試Python腳本

我們在實際調試python腳本中一般可以用記錄log和python本身自帶的pdb,當然這是在一般的情況下。但凡事總有例外,在以下三種情況時上述方法就無能為力了。
1 段錯誤

2 運行中的daemon程序

3 core dump

這個時候就需祭出gdb進行調試。python2.6的源碼中提供了部分預定義函數以便大家使用gdb調試,我們只需將文件Python-2.6/Misc/gdbinit所包括的內容加入到用戶目錄下的.gdbinit文件中即可,這樣每次啟動gdb時會自動完成這些宏的定義。但可惜的是Python2.6.2 gdbini對于pylocals的定義居然有錯誤, 看來是沒有隨著代碼的更新而同步更新。

我們只需將

while $_i < f->f_nlocals

修改為

while $_i < f->f_code->co_nlocals

即可。文章后面所附的幾個宏建議也加入的.gdbinit文件中,更多的宏可參考我們首先需要構造一個會造成段錯誤的python腳本。老實說讓python發生段錯誤并不容易,但通過其外部調用庫就很簡單了。我們將該文件命名為gdb_test.py

import sys, os, libxml2  def segv_test():  s = "<html><body><div><a><a></a></a><a></a></div></body></html>" options = libxml2.HTML_PARSE_RECOVER + \  libxml2.HTML_PARSE_NOERROR + \  libxml2.HTML_PARSE_NOWARNING  doc = libxml2.htmlReadDoc(s, None, 'utf-8', options).doc  ctxt = doc.xpathNewContext()  nodes = ctxt.xpathEval('//body/node()')  nodes.reverse()  for note in nodes:  nexts = note.xpathEval('node()')  note.unlinkNode()   note.freeNode()

freeNode會將該節點及其子節點釋放掉

nexts[0].unlinkNode()   nexts[0].freeNode()

資源已經釋放,再次釋放會造成段錯誤

def main():  segv_test()  if __name__ == "__main__":  main()

使用gdb運行該腳本,我們會得到段錯誤信息。

  1. gdb python  

  2. r gdb_test.py  

  3. *** glibc detected *** double free or corruption 
    (fasttop): 0x08104570 ***  

  4. Program received signal SIGABRT, Aborted.  

  5. [Switching to Thread -1208260928 (LWP 26159)]  

  6. 0x00b987a2 in _dl_sysinfo_int80 () from /
    lib/ld-linux.so.2   

上述就是小編為大家分享的Python腳本在使用gdb調試時常會遇到的克星指的是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

漳浦县| 平舆县| 普兰店市| 海口市| 南开区| 曲松县| 彩票| 应用必备| 武邑县| 景泰县| 阳高县| 北海市| 绥滨县| 屯昌县| 个旧市| 延吉市| 仪陇县| 扶余县| 凭祥市| 乌拉特前旗| 怀来县| 北辰区| 赤峰市| 包头市| 盐池县| 兰州市| 彰化市| 金阳县| 宜阳县| 河间市| 墨脱县| 岳阳市| 永清县| 布拖县| 安达市| SHOW| 英山县| 牡丹江市| 陇西县| 太和县| 永寿县|