Linux環境でpdbを使用してPythonをデバッグする方法
pdb は Python に付属するパッケージで、Python プログラムの対話型ソース コード デバッグ機能を提供します。その主な機能には、ブレークポイントの設定、シングル ステップのデバッグ、関数のデバッグの開始、現在のコードの表示、スタック フラグメントの表示、および動的変更が含まれます。変数の値などpdb は、一般的に使用されるデバッグ コマンドをいくつか提供します。 ️
p 変数 #変数の値を表示
b 行番号 #break ブレークポイントがどの行に設定されているかr pdb test.py
の使用方法を以下に説明します。デバッグ用のデータベース。
リスト 1. テスト コードの例
import pdb
a = "aaa"
pdb.set_trace()
b = "bbb"
c = "ccc"
final = a + b + c
printfinal
リスト2. pdb を使用してデバッグします
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?()
-> b = "bbb"
( Pdb ) n
> /root/epdb1.py(5)?()
-> c = "ccc"
(Pdb) > /root/epdb1.py(6)?()
; Final = a + b + c
(Pdb) リスト
1 import pdb
2 a = "aaa"
3 pdb.set_trace() 4 b = "bbb"
5 c = "ccc"
6 -> a + b + c
7 印刷最終
[EOF]
(Pdb)
[EOF]
(Pdb) n
> /root/epdb1.py(7)?()
-> )
変数の値を出力する: デバッグ中に変数の値を出力する必要がある場合は、 p と変数名を直接使用できますが、出力では現在のステートメントの後の特定の値のみが表示されることに注意してください。が実行された場合、NameError:
リスト 3. デバッグプロセス中に変数を出力する
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?()
-> bbb"
(Pdb) n
> /root/epdb1.py(5)?()
-> c = "ccc"
(Pdb) p b
'bbb'
(Pdb)
'bbb'
( Pdb) n
> /root/epdb1.py(6)?()
-> Final = a + b + c
(Pdb) p c
'ccc'
(Pdb) p Final
*** NameError:
> /root/epdb1.py(7)?()
-> 最終
'aaabbbccc'
(Pdb)
c を使用して現在のデバッグを停止し、プログラムの実行を継続できるようにします。次のプログラムにさらに set_statement() ステートメントがある場合、リーダーはコードの最終出力の前に set_trace() 検証を追加できます。
リスト 4. デバッグを停止し、プログラムの実行を続行します
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?()
-> b = "bbb"
(Pdb) n
> /root/epdb1.py(5)?()
-> c = "ccc"
(Pdb) c
aaabbbccc
コードの表示: 現在のコード ブロックはデバッグ中に記憶されていない場合があります。特定のコード ブロックを表示したい場合は、list または l コマンドを使用して表示できます。 list は、矢印 -> を使用して現在のデバッグ ステートメントを指します。
リスト 6. デバッグプロセス中に表示されるコード
[root@rcc-pok-idg-2255 ~]# python epdb1.py
> /root/epdb1.py(4)?()
-> bbb"
(Pdb) リスト
1 "インポート pdb
2 a = "aaa"
3 pdb.set_trace()
4 -> b = "bbb"
5 c = "ccc"
6 Final = a + b + c
7 pdb.set_trace()
8 最終を印刷
[EOF]
(Pdb) c
> /root/epdb1.py(8)?()
-> 最終を印刷
(Pdb) 3 pdb .set_trace() 4 )
関数を使用したデバッグ
リスト 6. 関数の使用例
import pdb
def combin(s1,s2): # サブルーチン結合を定義します。これは...
s3 = s1 + s2 + s1 # s2 を s1 のコピーの間に挟みます, ...
s3 = '"' + s3 +'"' # 二重引用符で囲みます,...
return s3 #
a = "aaa"
を返します。 pdb.set_trace ()
b = "bbb"
c = "ccc"
Final = combine(a,b)
printfinal
デバッグに n を直接使用すると、次の文が得られます。final=combine(a ,b) これを通常の代入ステートメントとして扱い、print Final と入力します。関数をデバッグしたい場合は、 s を使用して関数ブロックに直接入ることができます。関数のシングルステップ デバッグは、上記の概要と似ています。関数をステップ実行したくない場合は、ブレークポイントで直接 r を押して呼び出し元に戻ることができます。
清单 7. デバッグを実行します
[root@rcc-pok-idg-2255 ~]# python epdb2.py
> /root/epdb2.py(10)?()
-> b = "bbb"
(Pdb) n
> /root/epdb2.py(11)?()
-> c = "ccc"
(Pdb) n
> /root/epdb2.py(12)?()
-> Final = combin(a,b)
(Pdb) s
--Call--
> /root/epdb2.py(3)combine()
-> def combin(s1,s2): # サブルーチン結合を定義します。これは...
(Pdb) n
> /root/epdb2.py(4)combine()
-> s3 = s1 + s2 + s1 # s2 を s1 のコピーの間に挟みます, ...
(Pdb) list
1 import pdb
2
3 def combin(s1,s2): # サブルーチン結合を定義します...
4 -> s3 = s1 + s2 + s1 # s2 を s1 のコピーで挟みます, ...
5 s3 = '"' + s3 +'"' # 二重引用符で囲みます,...
6 return s3 # 返します。
7
8 a = "aaa"
9 pdb.set_trace()
10 b = "bbb"
11 c = "ccc"
(Pdb) n
> /root/epdb2.py(5)combine()
-> s3 = '"' + s3 +'"' # 二重引用符で囲みます...
(Pdb) n
> /root/epdb2.py(6)combine()
-> return s3 # そしてそれを返します。
(Pdb) n
--Return--
> /root/epdb2.py(6)combine()->'"aabbbaaa"'
-> return s3 # そしてそれを返します。
(Pdb) n
> /root/epdb2.py(13)?()
-> print Final
(Pdb)
調整時に値を動的に変更できます。特に次の例のように、次のような制限があることに注意してください。 b の評価値を再変更することを考えています。b を使用してください。关推荐:
Pdb库调试Pythonの方式および常用コマンド
UsePDBモード调试Python程序介绍
以上がLinux環境でpdbを使用してPythonをデバッグする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードワンステップ/次のステップショートカットキー使用法:ワンステップ(後方):Windows/Linux:Ctrl←; macOS:CMD←次のステップ(フォワード):Windows/Linux:Ctrl→; macOS:CMD→

コードでコードを実行すると、コードが6つしか必要ありません。1。プロジェクトを開きます。 2。コードファイルを作成して書き込みます。 3.端子を開きます。 4.プロジェクトディレクトリに移動します。 5。適切なコマンドを使用してコードを実行します。 6。出力を表示します。

Visual Studio Code(VSCODE)はMicrosoftによって開発され、電子フレームワークを使用して構築され、主にJavaScriptで記述されています。 JavaScript、Python、C、Java、HTML、CSSなどを含む幅広いプログラミング言語をサポートし、拡張を通じて他の言語のサポートを追加できます。

vs中国モードを切り替えるコード:設定インターフェイスを開き(Windows/Linux:Ctrl、MacOS:CMD、)[エディター:言語]設定を検索します。ドロップダウンメニューで[中国語]を選択します。

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。
