かなりのプリンタを登録しようとしました。 gdbコマンドプロンプトに "info pretty-printer"と書くと表示されます。しかし、これはどのように役立ちます。きれいなプリンターを登録する前に私がやったことはすべてやらなければなりません。例えば、登録する前に、私がかなりのプリンタを供給して、 "command-name expr"でinvokeメソッドを呼び出した場合、登録後も同じことをします。登録は私のかわいいプリンターにもたらす価値は何ですか?GDBで有益なプリンタを登録する方法
答えて
貴重なプリンタに関連するルックアップ機能がある場合、gdb print
コマンドは、かわいいプリンタから提供されたコマンドを明示的に起動する必要がなく、きれいなプリンタを呼び出すことができます。 This pageには、gdb.printing
モジュールを使用して、2つのprettyプリンタをgdb.printing.RegexpCollectionPrettyPrinter
で2つの正規表現に関連付ける例が含まれています。おそらく、gdb.pretty_printers
の内容を追うことでネイティブの例を見つけることもできます。私のオブジェクトにはlibstdcxx.v6.printers.Printer
オブジェクトとgdb.printing.RegexpCollectionPrettyPrinter
オブジェクトが含まれています。前者は私のシステムでは/usr/share/gcc-4.8/python/libstdcxx/v6/printers.py
に定義されています。
私は私のプリティプリンタを調達して、「コマンド名exprの」と invokeメソッドを呼び出した場合は、登録する前に、私はまだ 登録後に同じことを行います。
この文章から、あなたはコマンドとかわいいプリンタを混乱させるように思えます。コマンド実装にはinvoke
メソッドがあります。きれいなプリンタはありません。さらに、コマンドは(gdb) command-name
のようなgdbコマンドラインから呼び出されますが、値が印刷されているとき、つまりprint mumble
(またはバックトレース中に引数の値が出力されたときのように)など、きれいなプリンタが呼び出されるだけです。
あなたのコマンドをきれいなプリンタとして登録するのは便利ではないので、ときどきPythonの例外が表示されるだけです。
- 1. GDBにきれいなプリンタを登録
- 2. karma + browserifyの有益なスタックトレース、方法?
- 3. "有益な"プリファレンスの作成方法
- 4. イメージを手動で登録する方法(イメージ登録)
- 5. gdbで配列にインデックス登録できず、値をプリントする
- 6. ポータートークナイザをPythonで登録する方法
- 7. ClientConfigでJacksonFeatureを登録する方法
- 8. 登録方法BroadcastReceiver
- 9. 登録方法ヘルプヘルパー
- 10. コンテンツビューアに登録して登録するのに最適な場所/方法
- 11. 登録:有料アンドロイドアプリを公開する
- 12. 電子メールで文脈メニューの登録者を登録解除する方法
- 13. 登録なしで.NET(C#)をAutoItXで使用する方法
- 14. ユーザープロファイルを登録する適切な方法は何ですか?
- 15. デバイス登録コントローラをオーバーライドする方法
- 16. メッセージにカスタムアクションを登録する方法
- 17. Laravel固有の登録トークン
- 18. MultipleModelAPIViewの登録方法は?
- 19. org.springframework.integration.monitor.IntegrationMBeanExporterの登録方法
- 20. Hystrix - ExceptionMapperの登録方法
- 21. document.onkeypressイベントの登録方法
- 22. django登録の登録後、特定のURLにユーザをリダイレクトする方法は?
- 23. Django HMAC固有のメールで登録
- 24. App_codeフォルダにないHttpModuleを登録する方法
- 25. データベースに登録する登録フォームPHP
- 26. 他のMac Appで登録したホットキーの登録解除方法
- 27. Xamarin.FormsでPrismで自動的にビューを登録する方法
- 28. 手動でWiXで64ビットDLLを登録する方法
- 29. プリンタのプリンタプーリングを有効にする方法
- 30. iframeのようなfacebook likeイベントに登録する方法Like
現在、リンクリスト構造を印刷するための新しいコマンドを作成するPythonスクリプトを作成しました。私が同じもののためのかわいいプリンターをしたい場合は、どうすればいいのですか?構造はまだ同じに見えますか、それとも私が以前にしたものとはまったく異なっていますか? – Sharath
https://sourceware.org/gdb/current/onlinedocs/gdb/Writing-a-Pretty_002dPrinter.html#Writing-a-Pretty_002dPrinterを参照してください。構造は多少異なります。データ構造をデコードするロジックは似ていますが、gdbとのインタフェースは異なります。一般的に、gdbとうまく統合されているように、プリティプリンタはカスタムコマンドより優れています。 –