9

アプリケーションでライブラリのソース コードが表示されない:

  • ライブラリメソッドで「定義にジャンプ」すると、XCode は .h ファイルに移動しますが、対応する .cpp がないと言います
  • デバッグ時に、ソース コードが表示されず、ライブラリのコール スタックのほとんどが欠落しています。 ここに画像の説明を入力
  • 「デバッグ時に逆アセンブリを表示する」がチェックされていないことを確認しました

ライブラリを DEBUG としてビルドし、headers+.a ファイルを SDK ディレクトリにパッケージ化しました。そのため、デバッグ ファイルをその SDK ディレクトリにもコピーするか、アプリケーションにどこを見るかを伝える必要があると思います。どうすればいいのかわからない。

明確にするために、私のアプリケーション プロジェクトはライブラリ プロジェクトへの参照を保持せず、.a ファイルとヘッダー ディレクトリのみを保持します。これは、ライブラリ プロジェクトが CMake によって作成され、変更したくないためです。

4

1 に答える 1

10

まず、スタティック ライブラリの .debug_str セクションをチェックして、適切なデバッグ情報が含まれていることを確認する必要があります。

ターミナルで次のコマンドを実行してみてください。

xcrun dwarfdump /path/to/library.a | grep "\.m"

一連のソース (.m) ファイル パスが出力されているはずです。理論的には、これはデバッガーで停止したときに Xcode が参照する場所であるため、ここのパスが正しいことを確認してください。パスが表示されない場合は、適切なデバッグ フラグを渡す必要があります (たとえば-g、ライブラリをビルドするときにコンパイラに)。

パスが何らかの理由で間違っている場合、またはパスを別の場所に指定したい場合は、CMake のビルド プロセスの一部としてパスを変更できる場合があります。たとえば、プロジェクト ディレクトリからの相対パスにすることができます。CMake を使用してこれらのデバッグ パスを調整する「Make gcc put relative filenames in debug information 」を参照してください。

于 2012-10-18T15:52:12.427 に答える