問題タブ [cgdb]
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.
c++ - cgdb によるデバッグ -- 自分のコードだけをデバッグしたい
ブーストと一緒に標準のテンプレート ライブラリを使用しています。cgdb を使用してコードをデバッグしたいと考えています。しかし、次の実行中にコードをデバッグしてcgdbにステップインしたいだけです。今は他のライブラリにコードを入力しますが、コーディングして書き留めたコードに戻るか、ステップインする必要があります。
これを実現する方法はありますか。
gdb - gdb ログ ファイル形式
gdb で使用するset logging on
と、ログ ファイルへの出力は、ターミナル画面に表示されるものとは異なる形式になります。ログファイルはあまり読みにくいです。ログファイルを読み取り可能な形式で取得するにはどうすればよいですか?
画面への出力は問題ありません。
ログ ファイルへの出力が読みにくい:
linux - gdbを使用してLinuxコアダンプからのプロセスの下にあるすべてのプロセスとスレッドを一覧表示します
私はgdb/linuxコアダンプ用のスクリプトツールを開発しています。スクリプトをコアバンプにポイントすると、処理中のすべてのスレッドのすべてのスタックトレースが一覧表示されます。つまり、達成しようとしているのは、windbgの!process0とほぼ同等のgdbです。ダンプからスタックを使用してすべてのプロセスとスレッドをダンプします。
!process 0に相当するgdbはありますか?
そうでない場合
すべてのプロセスを一覧表示し、コアダンプからgdb内のプロセスの下にあるすべてのスレッドを一覧表示するgdbコマンドは何ですか?
これにより、すべてのpidとtidをループして、ファイルに記録できるバックトレースを取得するスクリプトを作成できますか?
また、perl / pythonなど、このためのスクリプト言語に関する提案もあります。より良いものを歓迎します。
ありがとうガネーシュ
macos - cgdbにアセンブリコードを表示させる方法は?
cgdbがバイナリを逆アセンブルし、コードウィンドウに現在の命令でアセンブリコードを表示する方法が見つかりません。これは可能ですか?どのコマンドを使用すればよいですか?Mac OS Xを使用していて、自作リポジトリからcgdbを取得しました。
macos - デバッガーでプロセスがクラッシュしました。どのように私はそれを殺すのですか
USBシリアルリンクを介してマイクロプロセッサに接続するC++アプリケーションがあります(Arduinoに似ています)。termios.h
私はシリアルラッパーとして使用します。
cgdb
Mac OS X で使用してデバッグしてい10.7.3
ます。
私がいつ:
cgdb build/my-process
- いくつかのブレークポイントなどを設定し、デバッグを行います
- バグを見つけるか、insideを使用してまだ実行中のプロセスを終了してみてください
kill
cgdb
プロセスがハングします。cgdb
プロセスを強制終了することを拒否します-ただそこに座っています。これは、アプリケーションの途中から、マイクロコントローラーにアクセスしているデバイスを決して解放しないためです。何かがロックされてロックが解除されないかどうかはわかりませんが、終了することはありません。kill
/dev/ttyUSB
cgdb
私はもう試した:
- 基本割り込み: Ctrl+C
ps aux | grep 'my-process',
kill -9 [pid]`.ps aux | grep cgdb
、kill -9 [pid]
。sudo
上記のバージョン。
どちらかcgdb
、またはその中で実行されているプロセスを強制終了するものはありません。
USB ケーブル (マイクロプロセッサへの接続を終了) を取り外すと (クラッシュしたプロセスがクラッシュする可能性があると思いました)、使用可能な CPU が 50% まで使用されているのが見え始め (何が原因かわかりません)、すべてがロックされます。アプリケーションをクラッシュさせることはできません。
( a) プロセスのデバッグ中またはデバッグ中にすべてをロックせずに正常に終了するか、または (b)プロセスを完全に (「完全に」とはケーキのアイシングに過ぎませんが) 停止している間に停止したプロセスを停止します。再起動せずに応答しないデバッグをしていますか?cgdb
gdb
kill -9
gdb - ncurses c アプリケーションに cgdb を使用する
ncurses アプリケーションをデバッグするときは、通常、次のことを行います。
これにより、ncurses アプリケーションが、gdb が実行されている端末とは別の端末で実行されるようになります。
最近 cgdb を発見し、とても気に入っています。残念ながら、 --tty オプションを尊重していないようです。
これを行う他の方法はありますか?cgdb の人々はどのように cgdb をデバッグします :) ?
ありがとう。
gdb - GDB 間違ったライブラリをロードする
私は2つの異なるバージョンのライブラリを持っています.libxyz.soとしましょう
2 つの異なる場所で
プログラムをコンパイルし、LD_LIBRARY_PATH に応じてライブラリの適切なバージョンにリンクするセットアップがあります。たとえば、自分のプログラムを libxyz.so の dev バージョンとリンクしたい場合は、LD_LIBRARY_PATH を変更して /home/maverick/dev を追加し、prod バージョンとリンクしたい場合は、LD_LIBRARY_PATH を変更して /home/maverick/prod を追加します。
開発バージョンとの出力をリンクしてプログラムをコンパイルしました
は
プログラムを実行すると、libxyz.soがロードされます
そしてうまくいきます。この時点で、私の LD_LIBRARY_PATH には /home/maverick/dev ではなく /home/maverick/prod が含まれています
しかし、GDBを介してこのプログラムをデバッグしようとすると
場所からlibxyz.soをロードします
デバッグ中に GDB にライブラリの正しいバージョンをロードさせるのに問題があります。だから今まで私がやっていることは、最初にプログラム(devバージョンをロードする)を起動し、gdbをそのPIDにアタッチすることです。しかし、それが次のように実行される場合
そうではない
GDBでsysroot、solib-search-pathを設定するなど、これを修正するためにあらゆることを試みましたが、何も機能していません。実際、ライブラリ gdb のデバッグ バージョンを指すように sysroot を設定したときに、次のようなメッセージが表示された場合
任意の提案をいただければ幸いです。
cgdb - cgdb内でgdbウィンドウをスクロールする方法は?
cgdbを使用しているときに、gdbウィンドウに表示される出力をどのようにスクロールしますか?
debugging - cgdb で実行中の現在の行にジャンプ
のソース ウィンドウで実行中の現在の行にジャンプすることはできcgdb
ますか?
これを行うためのコマンドまたはショートカットがあれば、特にファイル ダイアログ モードで長時間ファイルをブラウズした後は便利です。