9

Windows で Eclipse を使用して、Cygwin のツールチェーンを使用して C++ をプログラミングしています。デバッグにも使用したいのですが、私の問題は次のとおりです。

  • デバッグする実行可能ファイルは、ワークスペースのサブフォルダー (かなり標準的だと思います) にありますが、実行可能ファイルのビルド元の実際のプロジェクトにはありません。
  • Eclipse と GDB のパス形式は異なります。Eclipse は Windows パスで動作しますが、GDB は posix パスで動作します。Eclipse は知っていますがD:\Path\To\Exe、GDB は必要/cygdrive/d/Path/To/Exeです。
  • 「デバッグ構成...」ダイアログにパスを入力すると、デバッグする実行可能ファイルを見つけることができるとEclipseが主張します。パスが正しくなるまで、[デバッグ] ボタンは無効になります。
  • ${workspace_loc}Eclipse はその特定の入力ボックスを受け入れないようです。

私が知らない隠しオプションはありますか?以前に問題が発生したことがありますか?

これまでに試したこと

  • 入力したパスを Eclipse に強制的に GDB に渡す --- 機能しませんでした。
  • ソース ルックアップ パスとパス マッピングをいじる ---機能しませんでした。実際には、ソース ファイルのためだけです。
  • 実行可能ファイルがある出力フォルダーの C++ プロジェクトを作成すると、プロジェクト内の exe への相対パスを指定できます ---機能しませんでした。

まだ試すことができること

  • このファイルを使用して、.gdbinitEclipse によって指定されたパスを破棄し、実際の実行可能ファイルを posix パスでロードします --- 試してみましたが、それほど難しくはありませんでした。
  • GDB への引数としてラッパーを指定します --- ワークスペースのルートを汚染します。
  • ケースに対処するために独自のプラグインを提供します --- 別の言語で維持する別のコードを追加します。
4

3 に答える 3

13

Eclipse の [設定] -> [C/C++] -> [デバッグ] -> [共通ソース ルックアップ パス] で、新しいパス マッピングを追加します。コンパイル パスとしては Unix のようなパス (例: /cygdrive/c) を使用し、ローカル システムのパスとしては Windows のようなパス (例: c:) を使用する必要があります。

于 2009-02-24T19:42:58.200 に答える
1

Cygwin には、cygpathパスを Windows から UNIX へ、またはその逆に変換するために呼び出されるプログラムが付属しています。

$ cygpath -u 'c:\Users\Andrew\Documents\svn'
/cygdrive/c/Users/Andrew/Documents/svn

詳細については、を実行しcygpath --helpてください。

そのため、Windows 固有のパスを UNIX パスに変換し、実際の G​​DB を呼び出す GDB のラッパーを作成することをお勧めします。

于 2009-02-24T00:35:29.907 に答える
0

Eclipse Ganymedeにアップグレードすると、問題は解決しました。

于 2009-10-31T12:00:18.340 に答える