2011-01-17 18 views
4

私は最近、OSX 10.6プロジェクト(UIなしのC++サーバープロジェクト)を採用した経験豊富なVisual Studio開発者です。XCodeでDYLIBをデバッグする方法は?

最終的な実行可能プログラムにリンクされているさまざまな静的ライブラリのソースコードをデバッグするなど、数ヶ月間XCodeデバッガ(ブレークポイントの設定など)を使用してアプリケーションを正常にデバッグしています。

しかし、今夜私はソースコードからビルドされたDYLI​​Bをデバッグする必要がありましたが、実行時にアプリケーションと動的にリンクされています(DYLIBの名前は.iniファイルから読み込まれます)主なアプリケーションによって)。

残念ながら、通常の方法では、アプリケーションをデバッグする(カスタム実行可能ファイルを右クリックして "ブレークポイントでデバッグ"を選択します)、デバッガを正常に実行してアプリケーションをデバッグすることができます

- > XCodeデバッガは、ブレークポイントに関数と行番号が表示されているという意味でヒットしたと報告しています(これはgdbメッセージであるという指示と共に)XCodeウィンドウの下部にあるステータスバーに表示され、アプリケーションは実行を停止します。ただし、スタックトレースはなく、変数はありません。まったく空のデバッガウィンドウです。 「ステップオーバー」、「ステップイン」などのボタンは無効になっています。デバッガにはエディタウィンドウが表示されません(したがって、デバッガが指示された行で停止していることを視覚的に示すものはありません)。手でファイルを開いても、デバッガがその行に当たることはありません。

残念ながら、DYLIBをデバッグしようとする限り、これは私にとって役に立たないものです。

私は、このダイナミックにリンクされたDYLI​​Bのソースコード内で、XCodeデバッガがブレークポイントを意味のある方法でうまく打ち破る方法を探し、試しています。私はもちろん、いくつかのクリーン/リビルドを行ってきました。私は、「遅延シンボルを遅延読み込み」がチェックされていないことを確認してから、それをクリーニング/再構築しました。私は再起動しました。また、 "build"ディレクトリを削除して再構築しました。また、.x​​codeprojパッケージ内のユーザー固有のファイルも削除しました。 (もちろん、DYLIBコード、すべての最適化をオフにした開発モード、すべてのデバッグシンボルを生成するなど、すべてのコードをビルドして実行しています)。しかし、私の試みは成功していません。また、インターネットフォーラムでこの問題について言及したこともありません。

私のアプリケーションにリンクされているDYLIBを正常にデバッグするためにXCodeを使用する方法を教えてもらえれば助かります。

ありがとう、 Dan。

+0

私は多くの同じことをやったことがわかった。問題なし。私が示唆できるのは、あなたの問題はDevStudioの場合とほとんど同じです:あなたのdylibにはデバッグシンボルがありません。 –

答えて

3

更新 -

この問題は解決されました。 OSXの経験が不足しているため、これを見逃してしまった。私のDYLIBプロジェクトは、それを呼び出す実行可能ファイルと同じXCodeプロジェクトの一部であり、実行可能ファイルと同じディレクトリにDYLIBが作成されていたにもかかわらず、デバッグされたアプリケーションはこれからDYLIBにアクセスしていませんでしたロケーション。代わりに、(別の)インストール場所からアクセスしていました。この時点では、アプリケーションのインストール場所を "調理"した場所を追跡するのではなく、最終実行ファイル/ DYLIBを予想されるインストール場所にコピーし、この場所の実行可能ファイルを指す新しいカスタム実行可能ファイルを作成してデバッグしますDYLIBと実行可能な作業の両方を実行します。

ありがとう、 Dan。

+3

Mac上のダイナミックライブラリは、検索する必要があるパスを埋め込みます。このパスは、リンク時に実行可能ファイルにコピーされます。パスは 'otool -D libfile.dylib'で問い合わせることができます。 –

+0

@SylvainDefresne - 正確に正しい。ありがとう。 –

関連する問題