質問
Solaris10でのC ++開発のために、TDDを毎日行っています。デバッガーの使用に費やす時間が大幅に短縮されましたが、これが唯一のオプションである場合があります。
DBXは非常に強力ですが、ユーザーフレンドリーではありません。 DBX用のSunStudio GUIではなく、コンソールDBXについて説明していることに注意してください。
dbx C ++デバッグのために提供できる最高の生産性のヒントは何ですか?
PS。デバッガーの変更はオプションではありません。
解決
dbxに関連するいくつかのサイトをブックマークしました。これらは、あなたにとって役立つかもしれない場合の順不同です:
- dbxが自分の関数を見つけられないのはなぜですか
- Dbxデバッガーのオンラインヘルプ
- Sun Studio:マルチスレッドアプリケーションのデバッグw / dbx
- gdbとdbx:コマンドのマッピングと機能の比較
- デバッグ情報をdbxにインポート
- コマンドラインdbx:ソースをもっと見る
- Sun Studio C ++-.dbxrc (NB:適応ポインタサイズに応じてポインタをキャストするために使用される整数型)
- Sun Studio:dbxによるメモリリークの調査
- Sun Studio:からのメモリ割り当て/リークデータの収集実行中のプロセス
2012年7月19日に編集:Chris Quenelleのブログが移動して以来、いくつかのリンクを修正しようとしました。一部の記事には、ウェイバックマシンのおかげでアクセスできます。
他のヒント
dbxの強力な機能の1つは、組み込みのkshです。データ構造のカスタマイズされたビューを印刷したり、特定のルートでポインターを追跡したりするのと同じくらい複雑なシェル関数を作成できます。シェルはpdkshの古いバリエーションであるため、プログラミングには最適ではありませんが、使用する組み込み言語がない場合よりもはるかに優れています。また、コマンドラインから広範なヘルプを利用できます。ヘルプを検索するコツの1つは、" vi $ helpfile"を使用することです。 dbxコマンドシェル内から。 Thaは、生のヘルプファイルデータを1つの大きなファイルにまとめます。 dbxに付属し、デフォルトでロードされるdbxrcファイルで、シェル関数の例を見ることができます。 libumem統合モジュールを見ると、より洗練された例を見ることができます。ここで見つけることができます:
http://blogs.oracle.com/quenelle/entry/using_dbx_and_libumem_to
私も仕事でdbxを使用し、フラストレーションを理解するには 持っています!
私の人生を少し楽にするいくつかのヒント:
次のようなビルドコマンドシステムの使用:
when stop {print whatever ; }
明らかに、何でもが範囲外の場合は機能しませんが、私はそれが十分に有用であると思います。 「トレース」機能であるYMMVには、まだ多くの喜びがありません。
独自の.dbxrcファイルを作成すると、「パスマップ」がそうであるように、作業がずっと楽になります。機能。
最後に、これはすでにわかっている場合にのみ明らかですが、を試してください。 Sunのマニュアル。
特に書かれているわけではありませんが、それでも重要な読み物です。