より複雑な構造への多数のポインターを含む複雑な C 構造があります。
GDBでデバッグしながら、構造を画面/ファイルにフラット化できるようにしたいです。
確かに、私は非常に長いきれいなプリンター関数を書くことができますが、すべてのポインターは既知の型 (void ポインターなし) であり、GDB は手動で p *x を呼び出す方法を既に知っているため、これを使用してこれを達成できますか?
通常、GDB は、他のレベルに再帰的に入ることなく、構造の最初のレベルを出力します。
通常、GDBは、他のレベルに再帰的に入ることなく、構造の最初のレベルを出力します。
GDBがこれを行わなかった場合、循環リンクリストを印刷しようとするとどうなりますか?
一般に、プログラム内にプリティプリント関数を作成することは、とにかく良い考えです。非デバッグ実行可能ファイル、構造体の「ルート」がレジスターにある日が来るので、調べる必要があります。構造。
しかし、それを望まない場合は、一般的な「すべてのポインターをたどる」きれいなプリンターをPythonで簡単に作成できます。サイクルのあるグラフでそのようなプリンターを呼び出さないように注意してください。