エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
CPythonが属性名を解決する過程をgdbで確認する - Qiita
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
CPythonが属性名を解決する過程をgdbで確認する - Qiita
こちらの投稿では,Pythonがあるオブジェクトに与えられた属性名をどのように解決するのか,CPythonの実... こちらの投稿では,Pythonがあるオブジェクトに与えられた属性名をどのように解決するのか,CPythonの実装レベルで見てきます。バイトコードをCのレベルで確認するための事前準備はこちらの投稿を参考にしてください。 バイトコードへの変換 属性名の参照は"a.b"とすることで実行されます。このため,まずは"a.b"をバイトコードに変換します。 1 0 LOAD_NAME 0 (a) 2 LOAD_ATTR 1 (b) 4 POP_TOP 6 LOAD_CONST 0 (None) 8 RETURN_VALUE gdbによるステップ実行 前回の投稿にあるとおり,バイトコードを処理する際に中心となる関数は_PyEval_EvalFrameDefault関数です。対話モードのプロンプトを表示させた後,"a.b"を入力してどのような動作を行うか確認していきます。 LOAD_NAME 1つ目のLOA