2009-08-13 14 views
3

MacBook ProでEclipse Galileoを使用してC++コードをデバッグしようとしています(Mac OS X v10.5(Leopard))。これは初めての試みです。私はデバッグしたいのですが、物事をテストするために複雑なC++プログラムを持って、私は、デバッグしようとしたし、次のステップスルー:私は、デバッグのアイコンをクリックしたGDBを使用するように言われ MacでEclipse Galileoを使用してC++をデバッグする

#include <iostream> 
using namespace std; 

int main() 
{ 
    int x = 0; 
    cout << x << endl; 

    x = 54; 
    cout << x << endl; 

    return 0; 
} 

(DSF )Process Launcherを作成し、コードをステップ実行し始めました。私はxの値を監視できるようにしたいので、変数ウィンドウを開いて監視しました。当初、それは4096でした - たぶんいくらかのゴミ値。私はこれを理解するか回避することができないよう

Failed to execute MI command: 
-var-update 1 var1 
Error message from debugger back end: 
Variable object not found 

:できるだけ早く私はそれが値を示していた次の行を、ヒットとして、それは今、次のエラーが表示されます。そして、いくつかのGoogle検索では、鉛のヒントがなくても骨が乾燥していました。


ソリューションdrhirschは以下に指摘したように、標準プロセスランチャーを作成して代わりにGDBのプロセスランチャーを作成して使用します。 (これは実際には解決策であり、真の解決策ではありませんが、私たちのうち少なくとも2人は働いていました)

+0

はこんにちは、私は同じエラーに を取得していますが、画面上のエラー出力を得るのですか「の実行に失敗しましたか..」?私は情報もありません.... – flow

+0

現時点では、/ opt/local/bin/fsf-gdbを使用しています バージョン7.1です。私は広範囲にテストしませんでしたが、非常に異なる機能でブレークポイントを使用することができ、デバッグ中にプログラムが停止します – flow

+0

デバッグ情報でコンパイルして実行可能ファイルを削除しませんでしたか? – steve

答えて

5

私の経験では、gdb/dsfランチャーはまだ使用できません。私はそれも変数を表示することはできません、それはまだ非常にバギーのようです。

標準作成プロセスランチャーを試しましたか?私にとってこれはうまく動作します。

+0

あなたは知っています、私は正直なところそれに切り替えようとしましたが、まったく異なる種類のアプリケーションエラーがあります。しかし、あなたの提案で、私はもう一度やり直してみて、whaddaya知っている...それは動作します!ありがとう! –

+0

それ以来、Eclipseを再起動している可能性があります。それが理由かもしれません。 –

0

将来は(デバッグのみ)を試すこともできます - すべてのファイルをドラッグして新しいプロジェクトにインポートしますが、コンパイルしないでください。代わりに、デバッガウィンドウを開き、実行中のプロセスにアタッチします。

+0

私は – flow

0

同じ問題ですが、私は方法を見つけたかもしれません。 Eclipseでは、プロジェクトのプロパティの下で、実行/デバッグ設定で、起動設定を削除し、デバッガを再度実行しました。

私が変更した場合、デバッガを起動するには少なくとも10秒かかりますが、その時点ですべて正常に動作しました。私はそれがデバッグプロパティとランチャー設定の両方の組み合わせと関係していると思います。

2

これは、Eclipse以外のIDEを使用する以外に、信頼性の高い回答がない限り、依然として問題があるようです。

私は、DSF作成プロセスランチャーと標準のプロセス作成ランチャーの両方のバリエーションを試しましたが、どちらも成功したデバッグ経験をもたらしませんでした。 GDBデバッガはいずれかの方法で起動しますが、ブレークポイントは正しく処理されず(場合によっては解決されません)、ほとんどの変数値を検査/追跡できません。

  • のEclipse 3.5.2(ガリレオ)、64ビットのココアバージョン
  • のEclipse C/C++開発ツール6.0.2.2
  • はMac OS X 10.6を:ここで

    は、私が使用しているどのようなソフトウェアです0.3(Snow Leopardは)

  • GDB 6.3.5(Xcodeのに付属のAppleのバージョン)

私はまた、7のよう以来源からGDB 7.1を構築しようとしました。0は、x86/x86_64ネイティブのDarwinのサポートを持っているはずです。それは正常に構築され、コマンドラインからOKを起動しますが、Eclipseから起動するときにはさまざまな問題があります。これらは、Appleがデバッガをプロセスに接続できるようにするために、タスクゲーティングされたメカニズムがどのように機能するかについてアップルが最近行った変更に関連しているようです。次のエラーがこれらの典型的なものである:

Target request failed: Unable to find Mach task port for process-id 88283: 
(os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8)). 
ウェブ上

さまざまなソース は、Appleは、Mac OS Xをサポートするために、GDB 6.3.5で独自の特殊なパッチを使用していることを示しているが、これは本当に古いコードベース(2004) 。逆に、他のWebソースによると、Eclipse DSFデバッガフレームワークでは、GDB 6.6(2006年頃以降)からのみ表示されるGDBコマンドが必要です。

私はすべてのEclipse関連のフォーラムの上にしてきたが、この問題に対する解決策の兆候は認められません。 Eclipse CDT開発チームの誰もMac OS Xを使用していない人はほとんどいないので、このプラットフォームでの変更をテストすることはめったにありません。

編集UPDATE:上記に加えて、私は、開発者ビルドで前に記載さ試験(GDBバージョン6.3.5および7.1)、C/C++開発者のためのEclipseヘリオス3.6 RC3(IDEの全てを再試行しました)、これにはCDT 7.0が含まれます。同じ報告された問題のすべてに遭遇した。 Mac OS XでのEclipse CDTデバッグSnow Leopardはまだ機能していません。

誰でも何か違う、および/または、私が上記で報告しましたシナリオへの信頼性の高いEclipseベースのソリューションを知っていますか?

+0

ジョエルと言うだろう2つのIDEを使用することはあまり実用的ではありません、あなた自身の質問としてこれを投稿することがあります。私の目的のために、drhirschの標準的なランチャーを単に使うことを勧めたのは、私にとってはうまくいった。2つのアップ象徴は、他の人にも役立つかもしれないが、このページのフィードバックに基づいて、誰にでも役立つようには見えないことを示しています。おそらく、このトピックでは、まだ問題が発生しているあなた自身のような人から別の質問が必要です。 –

+0

@speedmetal - 提案をありがとう。まだ問題が残っているので、私はそれを行うかもしれません - 私はXCodeを代わりに使っています。私はおそらく最初にEclipseフォーラムの1つに投稿しようとします。 –

+0

私は同じ問題を抱えています。あなたは新しい解決策を見つけましたか? – flow

0

のEclipse 3.6(ヘリオス)のリリースバージョンにアップデートしてDSFを使用する/ GDBは、ランチャーを作成します。 Eclipse 3.6(Helios)では、DSF/GDBフレームワークの機能パリティを使用可能なレベルまで上げるために多くの作業が行われました。 Eclipse CDT 3.6 Heliosを使用して、OS X 10.5および10.6でデバッグが正常に動作するようになりました。

+0

hi mike、どのデバッグ設定を使用しているか教えていただけますか? – flow

0

OKは、現時点では、バージョン7.1である/opt/local/bin/fsf-gdbを使用して、トリックを行うようです!私はそれを広範囲にテストしなかったが、非常に異なる機能でブレークポイントを使用することができ、プログラムはデバッグ中にそこで停止する。

1

私はUbuntu上のEclipseの複数のバージョンと同様の問題を持っていました。よく私のために働いた解決策の1つは、最新バージョンではなく、GDBバージョン6.6を使用することです。

関連する問題