在pdb模式下基本都是單個字母完成調試中的命令,命令列表網上很多。
-
起步,調試模式打開py文件(-m的意思是將庫中的python模塊用作腳本去運行)。
python -m pdb test.py
-
用l(l就是list的意思)看看文件里面有什么(很常用的命令)。
它不會顯示全部文件,只會顯示當前運行行的上下幾行代碼,其中->指向的就是當前的運行的哪一行(注釋和空行是直接跳過的),因為是剛開始,所以是第一個import(19是代碼在文件中的行數)。(Pdb) l
19 -> import sys
-
用n(next)命令來執行到下一行,可以一直用n來一步一步看。
-
用s進入一個函數,比如運行的箭頭指向的代碼是調用某一個函數(這個函數可以在任何其他文件中),s命令就會跳轉到那個函數定義的地方,就像pycharm中的ctrl+鼠標左鍵命令一樣,如果當前行不是函數的話,s的作用和n是一樣的。
-
用r退出一個函數,就是運行完這個函數,然后return。
-
命令b(break)打斷點,如下是在pdb的命令行,選擇在根目錄下的test.py文件的第100行打斷點。
如果是只使用當前一個py文件,則用b 12在12行打斷點。(Pdb) b /test.py:440
-
命令c就是一直運行到遇到斷點或者結束。
-
顯示一個變量的值( 假設我在代碼中定義了dict_1):
(Pdb)p dict_1
-
退出:q 或者exit。
注意,如果在循環的位置(比如for的哪一行)加斷點,則執行到這之后,如果用一次c命令,它會循環一次后停到開始的位置,有多少次循環就會停多少次。
-
遇到報錯:ConfigurationError: unable to access signing_dir /var/cache/neutron
用sudo運行Python的pdb -
遇到報錯:
RuntimeError: Could not bind to 0.0.0.0:9696 after trying for 30 seconds
說明端口9696被占用,可以查看:lsof -i:9696,重啟neutron可以
關閉命令:systemctl stop devstack@q-svc.service -
Python pdb啟動調試neutron服務。
python -m pdb /usr/local/bin/neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini
如果報錯:
Traceback (most recent call last): File
“/usr/lib/python2.7/runpy.py”, line 163, in _run_module_as_main
mod_name, _Error) File “/usr/lib/python2.7/runpy.py”, line 102, in _get_module_details
loader = get_loader(mod_name) File “/usr/lib/python2.7/pkgutil.py”, line 462, in get_loader
return find_loader(fullname) File “/usr/lib/python2.7/pkgutil.py”, line 473, in find_loader
loader = importer.find_module(fullname) File “/usr/lib/python2.7/pkgutil.py”, line 181, in find_module
path = [os.path.realpath(self.path)] File “/usr/lib/python2.7/posixpath.py”, line 383, in realpath
return abspath(path) File “/usr/lib/python2.7/posixpath.py”, line 371, in abspath
cwd = os.getcwd() OSError: [Errno 2] No such file or directory
可能換一個新的命令行窗口就好了。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
