私はCを学びました。オープンソースソフトウェアの改善を始めたいと思います。私は、GTK +の厄介なバグを解読したいと思っています。バグを確認するには、Geditを使用する必要があります。デバッグを開始するには?
GTK +とgeditのソースをダウンロードして両方をコンパイルすると、バグの場所を知ることができますか?そして、私はLinuxでデバッガを一度も使用していないので、そのためのチュートリアルがありますか?
私はCを学びました。オープンソースソフトウェアの改善を始めたいと思います。私は、GTK +の厄介なバグを解読したいと思っています。バグを確認するには、Geditを使用する必要があります。デバッグを開始するには?
GTK +とgeditのソースをダウンロードして両方をコンパイルすると、バグの場所を知ることができますか?そして、私はLinuxでデバッガを一度も使用していないので、そのためのチュートリアルがありますか?
あなたはここでダウンロードしてgeditのコンパイルについての情報を得ることができます。 http://projects.gnome.org/gedit/developers.html
選択の私のデバッガは、GDBさ: http://www.gnu.org/software/gdb/
GDBは、初心者にとって扱いにくいかもしれコンソールアプリケーションです。 GDBにGUIを提供するEclipseのようなIDEを試してみてください。
建物に関する情報やGTK +をインストールするには、ここで次のようになります。 http://www.gtk.org/development.html
ソースはここにする必要があります: http://www.gtk.org/download-linux.html
あなたはgdbをチェックアウトすることができます: http://www.gnu.org/software/gdb/かなり標準的なLinuxのデバッガです。私は単純なものでそれを使って時間を過ごすか、それを使うIDEを手に入れます。しかし、gdbを学ぶことは時間の価値があるかもしれません。
ほとんどすべてのLinuxデバッガーは、gdbデバッガーのフロントエンドまたはアダプターです。したがって、最初にこれを使用する方法を学ぶ必要があります。好ましくは、巨大なFOSSコードベースではなく、 の小さなプログラムを独自に作成することから始めます。 gdbのマニュアル はhereから入手できますが、実際にはかなり良いチュートリアルです。
gdb
は、絶滅してしまっていたはずの恐竜です。デバッグは、WindowsがUnixを打ち負かす(気になる)エリアの1つです。私の胸からそれを得たので、Data Display Debugger (DDD)のグラフィカルフロントエンドをgdb
に始めることをお勧めします。はい、GUIは気取っていますが、gdb
で始まる場合よりも、から遠くになるとがより生産的で迅速になります。
また、メモリエラーを検出して診断するためにvalgrindを見落とさないようにしてください。 KDEプロジェクトでは実際にvalgrindの使用を義務づけています。私はGnomeについては分かりません。
最新のgeditとgtk +ソースをダウンロードした場合、バグは表示されない可能性があります。最新のソースで修正されるかもしれないし、最新のソースがあなたのバグを引き起こさないほど十分に異なるかもしれない。
実行中のLinuxディストリビューションは?
まず、あなたのディストリビューションのバグデータベースに相談して、誰かが同様のバグを提出しているかどうかを確認することをお勧めします。何も見つからない場合は、配布ツールを使用して、システムにインストールしたバイナリに対応するソースを入手することをお勧めします(DebianやUbuntuのapt-get source libgtk-2.0など)。
また、あなたのディストリビューションでは、ソースを必要とせずにすでに持っているバイナリ上でデバッガを実行できるようにするデバッグパッケージ(Debianのlibgtk2.0-0-dbgなど)もあります。これはソースを持つことに代わるものではありませんが、valgrindを実行したり、コアファイルから意味をなさないようにすると便利です。
私の流通はUbuntuです。私は一度バグを報告し、1年後に修正がリリースされたと聞いた。しかし、私のテストによれば、バグはまだそこにあり、私はsudo apt-get upgradeコマンドでUbuntuを最新バージョンに更新しました。 –
+1は私にそれを打つ。 ;) –
私はcgdbが好きです。これはgdbのncursesラッパーです。 – liori
insightは、GUIが好きな人にとっては素晴らしいフロントエンドです。 – McPherrinM