問題タブ [gdb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - gdb にシェル ウィンドウのサイズを無視させるにはどうすればよいですか?
これは、単体テスト フローの一部です。--command オプションを指定して gdb を実行し、テキスト ファイルからコマンドを実行します。次に、gdb の出力がファイルに送られ、そのファイルが参照ファイルと比較されます。しかし問題は、gdb が現在のシェル ウィンドウのサイズを使用して出力に改行を配置することです。ウィンドウが小さい場合は、出力に改行を追加して読みやすくします。
これを無効にするオプションがgdbにあるので、実行するシェルウィンドウに関係なく、テストの出力は常に同じになりますか?
編集:見つけました。これを最初のgdbコマンドとして使用します:
時には物事は簡単です。
c - C のデバッグとベスト プラクティスを学ぶ方法
C で Apache モジュールを作成しました。特定の条件下では、segfault になる可能性がありますが、その理由はわかりません。この時点で、それは私のコードである可能性があり、プログラムをコンパイルしている方法である可能性があります。または、OS ライブラリのバグである可能性があります (segfault は dlopen() の呼び出し中に発生します)。
GDB と Valgrind を実行してみましたが、成功しませんでした。GDB は、無意味に見える dlopen() システム コールへのバックトレースを表示します。Valgrind では、バグは実際には消えているか、少なくとも再現不可能になっているようです。一方、これらのツールに関しては、私はまったくの初心者です。
私は実稼働品質の C プログラミングに少し慣れていません (何年も前に C を使い始めましたが、専門的に扱ったことはありません)。プログラムのデバッグのコツを学ぶための最良の方法は何ですか? 他にどのようなツールを調査する必要がありますか? 要約すると、新しいバグの課題に取り組む方法をどのように見つけますか?
編集: 明確にするために、Sydius と dmckee の意見に感謝したいと思います。私はApacheのガイドを見て、dlopen(およびdlsymとdlclose)にかなり精通しています。私のモジュールはほとんどの部分で機能します (約 3,000 行のコードで、この 1 つのセクションを有効にしない限り、問題なく機能するようです)。
これが私の元の質問の由来だと思います-次に何をすべきかわかりません。GDB と Valgrind を最大限に活用していないことはわかっています。正確なフラグでコンパイルしていない可能性があることはわかっています。しかし、私はそれ以上を理解するのに苦労しています。私がすでに知っていることを教えてくれる初心者向けガイドや、必要以上のことを教えてくれるマニュアル ページを見つけることができますが、ガイダンスはありません。
c - GDB で fork-exec プロセスのエントリポイントをデバッグするには?
起動時に別のプロセス (P) を生成する C Linux アプリケーション (A) があります。PI をデバッグする場合は、通常どおり A を開始し、ddd/gdb で P に接続します。
P のエントリポイント (メインの開始) をデバッグしたいときに問題が発生します。デバッガーを P に接続するときに通常のアプローチに従うと、既に手遅れです。私が見つけた解決策は、P のメインの先頭にスリープを挿入することでした。これにより、gdb に接続する時間ができましたが、これはあまりエレガントな解決策ではありません。
私も使用してみましasm("int $3")
たが、うまくいかないようです。
どうすればこの問題を解決できるか分かりますか? (できれば A または P のコードを変更しないでください)
xcode - カーソルが非表示になっているアプリをxcodeでデバッグするときに、強制的に再表示するにはどうすればよいですか
ゲームがクラッシュし、デバッガー (キャプチャされていない別のモニター) がクラッシュの場所を表示するときに (2 台のモニターの 1 つに) 全画面表示になっているゲームをデバッグすると、カーソルが非表示のままになります。カーソルを強制的に再表示する方法はありますか? 私はやみくもにクリックすることができ、それは機能しますが、それほど正確ではありません.
gdb - ブレークポイントなしで GDB で実行を停止するにはどうすればよいですか?
ブレークポイントなしで GDB の実行を停止するにはどうすればよいですか?
c++ - gdb を使用した標準コンテナー (std::map) の内容の検査
次のようなものがあるとします。
gdb からプログラムを実行しているマップの内容を検査できるようにしたいと考えています。
添字演算子を使用しようとすると、次のようになります。
find メソッドを使用しても、より良い結果は得られません。
これを達成する方法はありますか?
c++ - gdbを使用したC++STL/Boostのベストプラクティスのデバッグ
gdbを使用してデバッグする場合、STL/boostを使用するc++コードは依然として悪夢です。STLでgdbを使用したことがある人なら誰でもこれを知っています。たとえば、ここのコードでいくつかのデバッグセッションのサンプル実行を参照してください。
ヒントを集めて痛みを和らげようとしています。以下に収集したヒントについてコメントしていただけますか(特に、使用しているヒントと、それらに推奨する変更)-ヒントは技術の降順でリストされています。
- 「StanfordGDBSTLutils」と「UCFGDButils 」を使用している人はいますか?ブーストデータ構造のためのそのようなユーティリティはありますか?上記のutilsは、たとえば、1つのコマンド内で読みやすい方法でboost :: shared_ptrのベクトルを出力する場合など、再帰的に使用できるようには見えません。
- .gdbinitファイルを作成します。たとえば、UCFGDButilsの下部にリストされているC++関連のビューティファイアを含めます。
- STLportなどのチェック済み/デバッグSTL/Boostライブラリを使用します。
- ロギングを使用します(たとえば、ここで説明されているように)
更新:GDBには新しいC++ブランチがあります。
c++ - Linux C++ デバッガー
完璧な Linux C++ デバッガーを探しています。成功するとは思っていませんが、検索は参考になるはずです。
私は非常に有能な gdb ユーザーですが、STL と Boost は私のデバッグ スキルを簡単に打ち砕きます。データ構造の内部に入ることができないのではなく、時間がかかりすぎて、通常は別の方法を見つけます(「疑わしい場合は印刷してください」)。
gdb のマクロ言語は奇妙で、あまり適応性がありません。stanford gdb utils のコードを見て、stl 構造を出力してください。
要するに、私は自分が持っているものに不満です。
最近、Zero Bugsに出くわしました。銀の弾丸のように見えます。現在の Zero Bugs ユーザーはどう思いますか?
Linux C++ Debugger の問題に対する他の良い解決策を見つけた人はいますか?
visual-studio - Visual Studio C ++(Express)内からGDBを使用してGCC Makefileプロジェクトをデバッグするにはどうすればよいですか?
MinGW GCCコンパイラを使用していくつかのアプリケーションをコンパイルするために、ビジュアルスタジオ(エクスプレス)2005/2008(今のところ重要ではありません)にいくつかのMakefileプロジェクトがあります。GCCでしか利用できない機能があるので、MSコンパイラは使いたくありません。
VSからコーディングしているので、VSの内部からデバッグしたいのですが、GDBを使用する必要があります(コマンドラインから機能します)が、IDEツールを使用することを好みます。
これを行う方法はありますか?Expressバージョンが制限されていてサポートされていない場合でも、フルバージョンを使用して実行できますか?
emacs - stdin を読み取り、gdb でパラメータを取るプログラムをロードする方法は?
標準入力から入力を受け取り、コマンドラインからいくつかのパラメーターも受け取るプログラムがあります。次のようになります。
Mx gdb を使用して、emacs 内で gdb を使用してコードをデバッグしようとしました。次のコマンドでプログラムをロードしようとしました。
しかし、gdb はそれを好まない。
質問はここから引用しました。残念ながら、私は解決策を理解できず、-g
オプションを指定してコンパイルし、コマンド Mx gdb を実行する以外に何をすべきかわかりません。