18

共有ライブラリ(動的にロードされる)を持つプロジェクトがあり、それをデバッグしようとしています。次のエラーメッセージが表示されます。

No source file named /home/username/Code/path/to/project/MyFile.cpp.

他のスレッドを検索した後、-gを使用してコンパイルしていること、および適切なフォルダーがデバッグ構成の[ソースパス]タブにあることを確認しました。奇妙な部分は、それが正しい絶対パスを与えていることです。それが参照するファイルは存在するので、なぜそこにあるとは思わないのかわかりません。

誰もがこれについて何をすべきか知っていますか?

4

7 に答える 7

24

ブレークポイントは共有ライブラリではなく実行可能ファイル自体にありましたが、同じ問題が発生しました。これを解決するには、「デバッグ構成」を開き、デバッグ構成を選択して、次の設定を調整する必要がありました。

  • 下部には、[プロセスの作成]ランチャーを選択するための[他を選択...]リンクがあります。リンクをクリックします。[構成固有の設定を使用する]にチェックマークを付けます。「標準作成プロセスランチャー」を選択し、「OK」を押します。
  • [デバッガー]タブに移動し、タブの上部で[デバッガー:gdb/mi ]を選択します。違いを生むかもしれないし、生まないかもしれない:同じタブに「ブレークポイントを設定するためにフルファイルパスを使用する」チェックボックスもあります-私はこれで遊んでいましたが、私たちが観察する問題(明らかに私たちのソースパス)には影響しないようですすでにフルパスです)。

共有ライブラリのブレークポイントについては、Eclipse cdtとgdbを使用したデバッグからの追加情報(特に遅延ブレークポイントに関する)と、 Eclipsecdtがブレークポイントを無視する理由が必要になる場合があります。

注:これは、Eclipse Kepler(4.3)およびgdb7.4を指します。

于 2012-10-26T11:22:46.160 に答える
2

私も同じ問題を抱えていましたが、私の場合は私のせいでした。一部のプロジェクトはリリース構成に設定されており、デバッガーは当然ソースファイル情報を見つけることができませんでした。

于 2015-06-12T08:00:55.843 に答える
1

私も同じ問題を抱えていました。プログラムとは別の場所でコンパイルされた共有ライブラリファイル(.so)にブレークポイントを設定できませんでした。これを修正するには:

  1. [デバッグ構成]の[ソース]タブに移動します
  2. コンパイルディレクトリを追加します(このプロセスのmakefileが配置されている場所ではなく、すべてのプロセスをコンパイルするメインmakefileの場所を使用しました)。
  3. また、「サブディレクトリもコンパイルに使用されます」をクリックします(私のサブプロセスmakefileはメインの場所のサブディレクトリにコンパイルされます)

毎回このディレクトリを追加する必要がないように、将来および過去のすべてのデバッグ構成に対してこの変更を行う方法を理解していませんが、理解できたら後で更新を試みます。

于 2015-12-17T16:45:43.237 に答える
0

私は同じ問題を抱えていましたが、私の解決策は異なっていました。プロジェクトの「debug/src」+「release/ src」ディレクトリを開き、名前が変更された可能性のある、または存在しなくなったソースファイルの名前を含む[filename].dファイルがないことを確認します。私はそれを持っていて、それを削除しました、そしてそれ以上のエラーはありませんでした。

したがって、少なくとも私の場合、エラーはスコープ外のオブジェクトによって作成されていると思います。

于 2014-08-08T10:28:26.760 に答える
0

これは、cygwinとmingw(または他のバリアント)の両方がある場合に発生する可能性があります。cygwinのgccを使用してソースをコンパイルする場合、実行可能ファイルにcygwinパスがあります。次に、デバッガーがmingwからのものである場合、gdbはcygwinパスを解釈できません。これを解決する最も簡単な方法は、[実行]->[デバッグ構成]->[デバッガー]に移動し、フルパスをcygwin gdb(C:\ cygwin64 \ bin \ gdb.exe)に設定することです。それは私にとって問題を解決しました。

于 2016-11-15T16:29:51.400 に答える
0

デバッグ構成設定の[デバッガー]タブに対する@AndreasFesterのコメントに従いましたが、[デバッガー:gdb / mi]が見つかりませんでしたが、[ソース]タブですべてのアイテムを削除し、[追加]をクリックして[絶対ファイルパス]を追加しました。ウィンドウの右側にある。"ボタン。それはこの問題で私を助けました

于 2018-02-15T20:50:43.180 に答える
-1

Makefileプロジェクトの既存のコード。ステップ1チェック-g-o0を使用してすべてのソースをコンパイルしますステップ2sdkおよびgdbツールチェーンで提供されるgdbserverおよびarm-yourversion-gdbを使用します。

于 2016-05-27T12:21:04.410 に答える