私は Visual C++ の専門家ですが、Linux 開発は初めてです。Visual Studio では、C ランタイム ライブラリによって実装されたコードを簡単に追跡できます。ソースがインストールされていることを確認する必要があるだけで、malloc()、cout::operator<<() など、好きな関数をすぐに実行できます。
Eclipse の C++ パッケージを使用して開発しようとしています。そこにある C ランタイム ルーチンにステップインするにはどうすればよいですか? Linux はオープンソースなので、オペレーティング システムのルーチンに入るにはどうすればよいですか? 可能だと思われます -- デバッグ情報、ソース コード、またはその両方が不足していますか? 私の構成で何か?
現在、Ubuntu 12.10 を使用しています。私は g++ を使用しています。Makefile プロジェクトをインポートしたことがないので、Eclipse ビルド システムを使用していると思います。Eclipse の C++ プロジェクト ウィザードから単純な "Hello World" プロジェクトを開始しました。
これを少しハッキングした後:
libstdc++6-4.2-dbg パッケージを libstdc ライブラリのデバッグ シンボルと考えてインストールしました。
sudo apt-get install libstdc++6-4.2-dbg
次のステップで dpkg-dev が必要だと言われたので、dpkg-dev もインストールしました。
sudo apt-get install dpkg-dev
libc6 ソースをホームの下のディレクトリにインストールしてみました。
apt-get source libc6
この時点で、printf() にステップ インしようとすると、printf.c が見つからないことがわかります。malloc や strlen に踏み込むことができません。これは、C ランタイム ライブラリが Linux でどのように考慮されているかを理解していないことを示唆しています。libc、glib、および libstdc++ の違いは? どのパッケージが必要ですか?
持っている printf.c ファイル (~/eglibc-2.15/stdio-common/printf.c) を開くように Eclipse に要求しても、ファイルは開かれません (ソースを表示するようにデバッグ ウィンドウが調整されません)。 )、ファイルが見つからないというエラー メッセージを表示するウィンドウを再描画します。(「printf.c」でソース ファイルが見つかりません。ファイルを検索するか、ソース ルックアップ パスを編集してその場所を含めます。)