4

C++ SDK を Windows から Mac OSX 10.5 に移植しています。デバッグ中に設定した場合にのみ、特定のファイルのブレークポイントがヒットする Xcode に問題があります。デバッグを停止してから再開すると、ブレークポイントにヒットしなくなります。デバッグしていないときに追加すると、ヒットしません。これは特定のファイルにのみ発生し、ブレークポイントは常に濃い青色になります。つまり、ヒットするブレークポイントとヒットしないブレークポイントの違いがわかりません。

具体的には、私の SDK はさまざまな動的ライブラリで構成されています。これらは、OS とコンパイラのバージョン (Visual Studio の cl.exe や link.exe など) に応じて、さまざまなコンパイルおよびリンク実行可能ファイルを呼び出す Perforce jam を使用してビルドされます。これらの動的ライブラリにリンクし、それらのコードを呼び出す単純な (ユニット テスト) コマンド ライン アプリケーションがあります。この Windows 上のアプリケーションは Visual Studio プロジェクトであり、ライブラリ コードにブレークポイントを設定し、それらがヒットすることを期待しています。

Xcode 3.1.2 で同じ C++ コマンド ライン ユーティリティ アプリケーションを作成しました。これは、sdk dylib にリンクし、その中のコードを呼び出します。一部のブレークポイントは正常に機能します。問題のあるコードから呼び出されたコードにブレークポイントを設定し、問題のあるコードにステップ アウトして、問題なくステップ スルーできます。問題のあるコードは、正常に動作するコードと同じ dylib にコンパイルされます。また、インライン化の候補にならないほど長く複雑です。

私は次のことを試しました:

  • [シンボルを遅延読み込み] をオフにします。
  • gcc 4.0 と gcc 4.2 の両方でコンパイルします。
  • 完全にクリーンアップしてシャットダウンします。
  • xcodeproj パッケージのユーザー固有のファイルを削除します。
  • システム ファイルと競合しないように、ファイルの名前を変更します。
  • [ブレークポイント] ウィンドウからすべてをクリアします。
  • 新しい Xcode プロジェクトを作成します。

私のアプリケーションはデバッグで DWARF 形式でコンパイルされており、私のライブラリは –g フラグ (–v、–arch i386、および –fvisibility-inlines-hidden と共に) を使用してビルドされています。

助けていただければ幸いです。ありがとう。

更新: これを更新できなくて申し訳ありません。私の Mac 移植プロジェクトは延期されました。これを解決したことはありませんが、実際にはコンストラクタ本体でのみ発生することがわかりました。再び問題にぶつかったときに、これを再検討します。

4

2 に答える 2

1

これらを試しましたか? ブレークポイントが機能しないのはなぜですか?

于 2009-04-08T17:12:27.477 に答える
1

本当の答えではありません: 公式の Apple バグトラッカーでバグレポートを作成する必要があります。遅かれ早かれ、そこから答えが得られる可能性が高くなります。あるいは、それは本当にバグである可能性もあります。

于 2009-11-13T20:28:30.077 に答える