Apple Developer Connection
Advanced Search
Member Login Log In | Not a Member? Contact ADC

< Previous PageNext Page >

トラブルシューティング

アプリケーションがRosettaを使って実行できるカテゴリに属するという確信があるにもかかわらず、実行できなかったり、予期しない動作をする場合は、このセクションの手順に従ってアプリケーションをデバッグすることができます。この手順はUniversal Binaryではなく、PowerPCバイナリのみに有効であり、インテルベースのMacintoshでPowerPCバイナリをデバッグできる唯一の方法です。Xcodeによるデバッグは、翻訳されたアプリケーションには有効ではありません。

インテルベースのMacintoshでPowerPCバイナリをデバッグするには、以下の手順に従ってください。

  1. 「ターミナル」を起動します。

  2. 次の2行を入力します。

    tcshの場合:

    setenv OAH_GDB YES
    /<パス>/<対象アプリケーション>.app/Contents/MacOS/<対象アプリケーション>

    bashの場合:

    export OAH_GDB=YES
    /<パス>/<対象アプリケーション>.app/Contents/MacOS/<対象アプリケーション>

    Rosettaプロセスが起動し、ポート接続を待ちます(Figure A-2)。


    Figure A-2  ポート接続を待機中のRosetta

    Figure A-2 ポート接続を待機中のRosetta
  3. アプリケーションを起動します。

  4. 2つ目の「ターミナル」ウインドウを開き、次のコマンドでGDBを起動します。

    gdb --oah

    インテルベースのMacintoshでGDBを使用するのは、PowerPC MacintoshでGDBを使用するのとまったく同じです。

  5. アプリケーションをアタッチ(接続)します。

    attach <対象アプリケーション>
  6. Tabキーを押します。

    GDBがアプリケーション名にプロセスID(pid)を自動的に付加します。

  7. Returnキーを押します。

  8. Cキーを入力してアプリケーションを実行します。

    重要::  runと入力しないでください。runと入力しても、コードは実行されません。アプリケーションが、最初の手順からやり直す必要がある状態になります。

Figure A-3に、PowerPCバイナリのデバッグセッションを開始するためのコマンドを示します。このセッションを開始すると、GDB内から(明示的または暗黙に)関数を呼び出せないことを除き、ネイティブなプロセスをデバッグするのとほとんど同じ方法でデバッグできます。たとえば、CFShowを呼び出してCFオブジェクトを検査することはできません。

デバッグセッションの開始時にシンボルファイルがロードされないことに留意してください。それらがロードされるのは、アプリケーションが起動して動作した後です。つまり、実行可能ファイルとライブラリがロードされるまで、設定したブレークポイントは「仮ブレークポイント」です。


Figure A-3  インテルベースのMacintoshでPowerPCバイナリをデバッグするためのコマンドを表示した「ターミナル」ウインドウ

Figure A-3 インテルベースのMacintoshでPowerPCバイナリをデバッグするためのコマンドを表示した「ターミナル」ウインドウ

注: CodeWarriorまたはXcode内からのRosettaアプリケーションのデバッグはサポートされていません。



< Previous PageNext Page >


Last updated: 2006-03-08




Did this document help you?
Yes: Tell us what works for you.

It’s good, but: Report typos, inaccuracies, and so forth.

It wasn’t helpful: Tell us what would have helped.
Get information on Apple products.
Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Copyright © 2007 Apple Inc.
All rights reserved. | Terms of use | Privacy Notice