pdbでネストされたブレークポイントは可能ですか?そうでない場合、何がそれらを妨げますか?

HostileForkはSEを信用しないと言っています

以下のPythonのデバッガのチュートリアル、私が使用しpdb.set_trace()たサンプルコードを中断します。それは機能しましたが、インタラクティブプロンプトが表示されていて、別のネストされたブレークポイントが必要な場合はどうでしょうか。

(Pdb) def test(): pdb.set_trace(); print "don't print this yet"
(Pdb) test()
don't print this yet

止まらなかった。デバッガーは基本的に「1つの深さ」ですか?たとえば、これはPythonのフックの制限ですか、それともpdbが選択しないことですか?

HostileForkはSEを信用しないと言っています

これはPythonのフックの制限ですか、それともpdbが選択しないことですか?

フックの制限のようです。

何が呼び出され、何が呼び出されなかったかを確認するためにテストを行いました(printステートメントを入れて/usr/lib/python2.7/bdb.py

クイック検査はpdb.pyset_trace見つかります:

def set_trace():
    Pdb().set_trace(sys._getframe().f_back)

それはbdb.pyのset_traceを呼び出します

def set_trace(self, frame=None):
    """Start debugging from `frame`.
    If frame is not specified, debugging starts from caller's frame.
    """
    if frame is None:
        frame = sys._getframe().f_back
    self.reset()
    while frame:
        frame.f_trace = self.trace_dispatch
        self.botframe = frame
        frame = frame.f_back
    self.set_step()
    sys.settrace(self.trace_dispatch)

これにより、同じくbdb.pyにあるtrace_dispatchへのコールバックが設定されますsys.settraceコード自体はおそらくthreading.pyにあります:

def settrace(func):
    global _trace_hook
    _trace_hook = func

GitHub検索では、の参照がこれ以上見つからないため_trace_hook、おそらくCコードのどこかで魔法のように検出されています。

test()が呼び出されると、sys.settrace()呼び出しが行われることがわかります...しかし、その後、trace_dispatch()の呼び出しは発生しません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Composerは予期しないポリフィルをインストールします。それらが不要な場合、それらをインストールしないようにするにはどうすればよいですか?

分類Dev

ネットワーク共有に保存されているファイルのハッシュを生成した場合、ファイル全体がネットワーク経由で送信されますか?そうでない場合はなぜですか?

分類Dev

入力されたintがそのテキストファイルで見つかった場合、Javaでインポートされたテキストファイルから行を印刷するにはどうすればよいですか?

分類Dev

子コンポーネントの小道具が変更されていない場合でも、Reactはそれを再レンダリングしますか?

分類Dev

サーブレットコンテキストですべての属性名(ネストされているかどうかにかかわらず)を取得し、それがマップまたはリストである場合はどのように繰り返すのですか?

分類Dev

アジャイルテンプレート2012のバグステータスレポートをスクラムテンプレートで使用できますか?そうでない場合はどうすればいいですか?

分類Dev

これは、フェッチリクエストからReactにデータを表示する正しい方法ですか?そうでない場合、コンポーネントにレンダリングされるJSXを変更するにはどうすればよいですか?

分類Dev

関数コンポーネントがタグ付きでレンダリングされる場合、それはその関数のオブジェクトインスタンスとして扱われますか?

分類Dev

同じイテレータを持つネストされたループがコンパイルされていますが、それはなぜですか?

分類Dev

文字列が1で置き換えられた後、1ずつインクリメントされ、それ以外の場合はnullが見つかった場合は、マトリックスが0になり、新しいマトリックスJavaScriptforループジェネリックコードが表示されます。

分類Dev

テンプレート化された関数を特殊化して、引数の型がポインターである場合とそうでない場合を区別する方法はありますか?

分類Dev

UbuntuサーバーをインストールするとUbuntuデスクトップOSが消去されますか(そうでない場合、UbuntuデスクトップOSを消去するにはどうすればよいですか)?

分類Dev

パブリック、プライベート、または職場のWiFiネットワークの違いは何ですか?また、それぞれにどのようなリスクがありますか?

分類Dev

FileZillaからファイルをアップロードすると実際に何が起こっているのですか?私たちはそれをホストしていますか?、はいの場合、それは実際にどのようにウェブホスティングプロバイダーとリンクされていますか?

分類Dev

index.htmlからインポートされたJavascriptスクリプトからグローバル変数と関数にアクセスし、それらをコンポーネントで使用するにはどうすればよいですか?

分類Dev

オブジェクト(ファイル/フォルダー)とそのパスのリストが文字列として与えられた場合、それらを正式な階層に編成するにはどうすればよいですか?

分類Dev

ネストされたクラス名は、それを囲むクラステンプレートで使用される場合、現在のインスタンス化と見なされますか?

分類Dev

すでに定義されているテンプレート関数が与えられた場合、それを曖昧にすることなく、別のテンプレート関数でオーバーロードすることは可能ですか?

分類Dev

「タグ順」スタイルの値「-」(ハイフン)が、「実行可能ファイル」タグが明示的に指定されている場合でも、そのタグの一致を妨げるのはなぜですか?

分類Dev

「タグ順」スタイルの値「-」(ハイフン)が、「実行可能ファイル」タグが明示的に指定されている場合でも、そのタグの一致を妨げるのはなぜですか?

分類Dev

地域または国がWebサイトをブロックする場合、ドメインIPアドレスはブロックされますか、それともDNSサーバーでのドメイン解決は行われませんか?

分類Dev

ユーザーがブラウザのURLを介して直接保護されたルートにアクセスする場合、コンポーネントにリダイレクトするにはどうすればよいですか?

分類Dev

2つ(またはそれ以上)の@ ngrx / storeアクションをキャッチし、それが発生するまでコンポーネントでサブスクリプションを保持するにはどうすればよいですか?

分類Dev

Windows 10のコントロールパネルに追加のキーボードレイアウトが表示されない場合、それらを削除するにはどうすればよいですか?

分類Dev

画面に収まらないコンテンツがたくさんある場合に、テーブルをスクロール可能/レスポンシブにするにはどうすればよいですか?

分類Dev

私が管理者ではないが、レジストリを読みたい場合、それを行う最も簡単な方法は何ですか?

分類Dev

アプリがアプリトレイから直接削除された場合、一部またはすべてのワークマネージャーリクエストをキャンセルするにはどうすればよいですか?

分類Dev

用語:OOPでは、ルックアップテーブルまたはゲートウェイからの「結合された」データを使用するオブジェクトまたはレコードがある場合、それは何と呼ばれますか?

分類Dev

トレントクライアントに転送されたポートがない場合、どうすればシードできますか?

Related 関連記事

  1. 1

    Composerは予期しないポリフィルをインストールします。それらが不要な場合、それらをインストールしないようにするにはどうすればよいですか?

  2. 2

    ネットワーク共有に保存されているファイルのハッシュを生成した場合、ファイル全体がネットワーク経由で送信されますか?そうでない場合はなぜですか?

  3. 3

    入力されたintがそのテキストファイルで見つかった場合、Javaでインポートされたテキストファイルから行を印刷するにはどうすればよいですか?

  4. 4

    子コンポーネントの小道具が変更されていない場合でも、Reactはそれを再レンダリングしますか?

  5. 5

    サーブレットコンテキストですべての属性名(ネストされているかどうかにかかわらず)を取得し、それがマップまたはリストである場合はどのように繰り返すのですか?

  6. 6

    アジャイルテンプレート2012のバグステータスレポートをスクラムテンプレートで使用できますか?そうでない場合はどうすればいいですか?

  7. 7

    これは、フェッチリクエストからReactにデータを表示する正しい方法ですか?そうでない場合、コンポーネントにレンダリングされるJSXを変更するにはどうすればよいですか?

  8. 8

    関数コンポーネントがタグ付きでレンダリングされる場合、それはその関数のオブジェクトインスタンスとして扱われますか?

  9. 9

    同じイテレータを持つネストされたループがコンパイルされていますが、それはなぜですか?

  10. 10

    文字列が1で置き換えられた後、1ずつインクリメントされ、それ以外の場合はnullが見つかった場合は、マトリックスが0になり、新しいマトリックスJavaScriptforループジェネリックコードが表示されます。

  11. 11

    テンプレート化された関数を特殊化して、引数の型がポインターである場合とそうでない場合を区別する方法はありますか?

  12. 12

    UbuntuサーバーをインストールするとUbuntuデスクトップOSが消去されますか(そうでない場合、UbuntuデスクトップOSを消去するにはどうすればよいですか)?

  13. 13

    パブリック、プライベート、または職場のWiFiネットワークの違いは何ですか?また、それぞれにどのようなリスクがありますか?

  14. 14

    FileZillaからファイルをアップロードすると実際に何が起こっているのですか?私たちはそれをホストしていますか?、はいの場合、それは実際にどのようにウェブホスティングプロバイダーとリンクされていますか?

  15. 15

    index.htmlからインポートされたJavascriptスクリプトからグローバル変数と関数にアクセスし、それらをコンポーネントで使用するにはどうすればよいですか?

  16. 16

    オブジェクト(ファイル/フォルダー)とそのパスのリストが文字列として与えられた場合、それらを正式な階層に編成するにはどうすればよいですか?

  17. 17

    ネストされたクラス名は、それを囲むクラステンプレートで使用される場合、現在のインスタンス化と見なされますか?

  18. 18

    すでに定義されているテンプレート関数が与えられた場合、それを曖昧にすることなく、別のテンプレート関数でオーバーロードすることは可能ですか?

  19. 19

    「タグ順」スタイルの値「-」(ハイフン)が、「実行可能ファイル」タグが明示的に指定されている場合でも、そのタグの一致を妨げるのはなぜですか?

  20. 20

    「タグ順」スタイルの値「-」(ハイフン)が、「実行可能ファイル」タグが明示的に指定されている場合でも、そのタグの一致を妨げるのはなぜですか?

  21. 21

    地域または国がWebサイトをブロックする場合、ドメインIPアドレスはブロックされますか、それともDNSサーバーでのドメイン解決は行われませんか?

  22. 22

    ユーザーがブラウザのURLを介して直接保護されたルートにアクセスする場合、コンポーネントにリダイレクトするにはどうすればよいですか?

  23. 23

    2つ(またはそれ以上)の@ ngrx / storeアクションをキャッチし、それが発生するまでコンポーネントでサブスクリプションを保持するにはどうすればよいですか?

  24. 24

    Windows 10のコントロールパネルに追加のキーボードレイアウトが表示されない場合、それらを削除するにはどうすればよいですか?

  25. 25

    画面に収まらないコンテンツがたくさんある場合に、テーブルをスクロール可能/レスポンシブにするにはどうすればよいですか?

  26. 26

    私が管理者ではないが、レジストリを読みたい場合、それを行う最も簡単な方法は何ですか?

  27. 27

    アプリがアプリトレイから直接削除された場合、一部またはすべてのワークマネージャーリクエストをキャンセルするにはどうすればよいですか?

  28. 28

    用語:OOPでは、ルックアップテーブルまたはゲートウェイからの「結合された」データを使用するオブジェクトまたはレコードがある場合、それは何と呼ばれますか?

  29. 29

    トレントクライアントに転送されたポートがない場合、どうすればシードできますか?

ホットタグ

アーカイブ